MST

星途 面试题库

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

请用Python的Socket模块编写一个简单的TCP服务器和客户端程序。服务器需要能够接收客户端发送的字符串,将其反转后返回给客户端。要求展示如何处理连接、接收和发送数据。
37.0万 热度难度
编程语言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('服务器启动,等待客户端连接...')
    while True:
        client_socket, client_address = server_socket.accept()
        print(f'客户端 {client_address} 已连接')
        data = client_socket.recv(1024).decode('utf-8')
        print(f'接收到客户端数据: {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'))
    response = client_socket.recv(1024).decode('utf-8')
    print(f'从服务器接收到反转后的数据: {response}')
    client_socket.close()


if __name__ == '__main__':
    tcp_client()

上述代码中,服务器首先创建一个基于 IPv4 和 TCP 协议的套接字,绑定到本地地址 127.0.0.1 和端口 8888 并开始监听连接。当有客户端连接时,接收客户端发送的数据,将其反转后再发送回客户端,处理完后关闭客户端连接。

客户端同样创建一个基于 IPv4 和 TCP 协议的套接字,连接到服务器地址 127.0.0.1 和端口 8888,发送一条消息给服务器,然后接收服务器返回的反转后的数据并打印,最后关闭连接。