以下是使用Python的socket
库创建简单的客户端和服务器的示例。这个示例将展示如何建立一个基本的TCP连接,服务器接收数据并发送响应,客户端发送数据并接收响应。
服务器端代码
首先,我们编写服务器端代码,它将监听来自客户端的连接请求:
import socket def start_server(): # 创建一个socket对象 server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) # 获取本地主机名和设置端口号 host = '127.0.0.1' port = 65432 # 绑定socket到指定的地址和端口 server_socket.bind((host, port)) # 开始监听(可以接受连接的最大数量为1) server_socket.listen(1) print(f"服务器正在运行,监听 {host}:{port}") while True: # 接受客户端的连接 client_socket, addr = server_socket.accept() print(f"接收到来自{addr}的连接") # 接收客户端发送的数据 data = client_socket.recv(1024).decode() print(f"接收到的数据: {data}") # 发送响应 response = f"你好,客户端! 你发送了: {data}" client_socket.send(response.encode()) # 关闭客户端连接 client_socket.close() if __name__ == "__main__": start_server()
客户端代码
接下来,我们编写客户端代码,它将连接到服务器并发送数据:
import socket def start_client(): # 创建一个socket对象 client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) # 设置服务器的主机名和端口号 host = '127.0.0.1' port = 65432 # 连接到服务器 client_socket.connect((host, port)) print(f"已连接到服务器 {host}:{port}") # 发送数据 message = "您好,服务器!" client_socket.send(message.encode()) print(f"发送的数据: {message}") # 接收服务器的响应 response = client_socket.recv(1024).decode() print(f"接收到的响应: {response}") # 关闭连接 client_socket.close() if __name__ == "__main__": start_client()
使用说明
-
运行服务器:
- 将服务器端代码保存到一个文件中,例如
server.py
。 - 在命令行中运行
python server.py
启动服务器。
- 将服务器端代码保存到一个文件中,例如
-
运行客户端:
- 将客户端代码保存到另一个文件中,例如
client.py
。 - 在另一个命令行窗口中运行
python client.py
启动客户端。
- 将客户端代码保存到另一个文件中,例如
结果
- 服务器会显示接收到的数据以及客户端的连接信息。
- 客户端会显示其发送的消息以及服务器的响应。
通过上述代码示例,您可以了解到如何使用Python的socket
库创建基本的TCP客户端和服务器。可以根据需要扩展代码,比如添加异常处理、支持多客户端连接等。