面试题答案
一键面试实现思路
- 服务器端:
- 导入
socket
模块。 - 创建一个TCP套接字对象。
- 将套接字绑定到指定的地址和端口。
- 开始监听传入的连接。
- 接受客户端连接,接收客户端发送的字符串,将其反转后回传给客户端。
- 关闭连接。
- 导入
- 客户端:
- 导入
socket
模块。 - 创建一个TCP套接字对象。
- 连接到服务器的地址和端口。
- 发送字符串到服务器,接收服务器回传的反转后的字符串并打印。
- 关闭连接。
- 导入
核心代码
服务器端代码:
import socket
# 创建TCP套接字
server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# 绑定地址和端口
server_address = ('localhost', 12345)
server_socket.bind(server_address)
# 开始监听
server_socket.listen(1)
print('等待客户端连接...')
# 接受客户端连接
client_socket, client_address = server_socket.accept()
print('客户端已连接:', client_address)
# 接收客户端发送的字符串
data = client_socket.recv(1024).decode('utf-8')
print('接收到的数据:', data)
# 反转字符串
reversed_data = data[::-1]
# 将反转后的字符串回传给客户端
client_socket.send(reversed_data.encode('utf-8'))
# 关闭连接
client_socket.close()
server_socket.close()
客户端代码:
import socket
# 创建TCP套接字
client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# 连接到服务器
server_address = ('localhost', 12345)
client_socket.connect(server_address)
# 发送字符串到服务器
message = 'Hello, Server!'
client_socket.send(message.encode('utf-8'))
# 接收服务器回传的反转后的字符串
reversed_message = client_socket.recv(1024).decode('utf-8')
print('接收到反转后的消息:', reversed_message)
# 关闭连接
client_socket.close()