面试题答案
一键面试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
,发送一条消息给服务器,然后接收服务器返回的反转后的数据并打印,最后关闭连接。