面试题答案
一键面试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套接字,连接到服务器,发送字符串并接收服务器反转后的字符串。运行时先启动服务器端,再运行客户端。