python创建一个多线程TCP服务器
时间: 2023-11-01 13:08:03 浏览: 52
你可以使用Python的`socket`和`threading`模块来创建一个多线程TCP服务器。下面是一个简单的示例代码:
```python
import socket
import threading
def handle_client(conn):
while True:
data = conn.recv(1024) # 接收客户端发送的数据
if not data:
break
response = 'Server received: ' + data.decode()
conn.sendall(response.encode()) # 发送响应给客户端
conn.close()
def main():
host = '127.0.0.1'
port = 5000
server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server_socket.bind((host, port))
server_socket.listen(5)
print(f'Server listening on {host}:{port}')
while True:
conn, addr = server_socket.accept()
print(f'New connection from {addr[0]}:{addr[1]}')
client_thread = threading.Thread(target=handle_client, args=(conn,))
client_thread.start()
if __name__ == '__main__':
main()
```
在这个例子中,`handle_client`函数用于处理每个客户端连接。它在一个循环中接收客户端发送的数据,并将响应发送回客户端。当客户端关闭连接时,循环会结束,连接将关闭。
`main`函数作为服务器的入口点。它创建一个TCP套接字并监听指定的主机和端口。每当有新的连接时,它会创建一个新的线程来处理该连接。
请注意,这只是一个简单的示例,没有处理并发连接的限制和其他实际部署中可能需要的安全性措施。在实际应用中,你可能需要更多的代码来处理错误、验证客户端、管理并发连接等。