python tcp服务器端,实现每有一个客户端连接,就创建一个新的套接字与新的新的线程
时间: 2024-02-24 08:54:17 浏览: 31
可以使用Python的socket和threading模块来实现这个功能。以下是一个简单的TCP服务器端代码示例:
```python
import socket
import threading
# 客户端处理线程
def handle_client(client_socket):
# 接收客户端发送的消息
request = client_socket.recv(1024)
print(f"Received {request.decode('utf-8')} from {client_socket.getpeername()}")
# 回复客户端消息
response = "Hello from server"
client_socket.send(response.encode('utf-8'))
# 关闭客户端套接字
client_socket.close()
# 创建TCP服务器套接字
server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# 绑定服务器地址和端口号
server_socket.bind(('localhost', 8888))
# 开始监听客户端连接请求
server_socket.listen(5)
print("Server is listening on port 8888...")
while True:
# 等待客户端连接请求
client_socket, client_address = server_socket.accept()
print(f"New client {client_address} is connected")
# 创建新的线程处理客户端消息
client_thread = threading.Thread(target=handle_client, args=(client_socket,))
client_thread.start()
```
在这个例子中,我们首先创建了一个TCP服务器套接字并绑定了地址和端口号。然后我们开始监听客户端连接请求。当有新的客户端连接时,我们创建一个新的线程来处理客户端的消息。在handle_client函数中,我们首先接收客户端发送的消息,然后回复客户端消息,最后关闭客户端套接字。
需要注意的是,每个客户端连接的处理都需要在一个新的线程中完成,否则服务器将无法同时处理多个客户端的请求。