MST

星途 面试题库

面试题:Python网络编程之Socket基础应用

请用Python的socket模块编写一个简单的TCP服务器和客户端程序,要求服务器能接收客户端发送的字符串,并将该字符串反转后回传给客户端。
19.9万 热度难度
编程语言Python

知识考点

AI 面试

面试题答案

一键面试

TCP服务器代码:

import socket


def tcp_server():
    server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    server_socket.bind(('127.0.0.1', 8888))
    server_socket.listen(1)
    print('Server is listening on port 8888...')

    while True:
        client_socket, client_address = server_socket.accept()
        print(f'Connected by {client_address}')

        data = client_socket.recv(1024).decode('utf-8')
        print(f'Received from client: {data}')

        reversed_data = data[::-1]
        client_socket.send(reversed_data.encode('utf-8'))

        client_socket.close()


if __name__ == "__main__":
    tcp_server()

TCP客户端代码:

import socket


def tcp_client():
    client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    client_socket.connect(('127.0.0.1', 8888))

    message = "Hello, Server!"
    client_socket.send(message.encode('utf-8'))

    data = client_socket.recv(1024).decode('utf-8')
    print(f'Received from server: {data}')

    client_socket.close()


if __name__ == "__main__":
    tcp_client()

上述代码中,服务器端使用socket模块创建TCP套接字,绑定到本地地址和端口8888并监听连接。当有客户端连接时,接收客户端发送的字符串,将其反转后再发送回客户端。客户端同样创建TCP套接字,连接到服务器,发送字符串并接收服务器反转后的字符串。运行时先启动服务器端,再运行客户端。