使用socket库创建简单的客户端和服务器
以下是使用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客户端和服务器。可以根据需要扩展代码,比如添加异常处理、支持多客户端连接等。