用python写一段多线程tcp代码
时间: 2023-08-04 15:21:21 浏览: 81
以下是一个简单的多线程TCP代码示例,用Python实现:
```python
import socket
import threading
def handle_client(conn, addr):
# 处理客户端请求
print(f"[INFO] New connection from {addr}")
while True:
data = conn.recv(1024)
if not data:
break
# 对客户端请求进行处理
response = data.upper()
conn.sendall(response)
conn.close()
def run_server():
# 启动TCP服务器
HOST = '127.0.0.1'
PORT = 8888
server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server.bind((HOST, PORT))
server.listen(5)
print(f"[INFO] Listening on {HOST}:{PORT}")
# 循环处理客户端请求
while True:
conn, addr = server.accept()
# 创建新线程处理客户端请求
t = threading.Thread(target=handle_client, args=(conn, addr))
t.start()
if __name__ == '__main__':
run_server()
```
这段代码实现了一个简单的TCP服务器,通过多线程的方式处理客户端请求。当有新的客户端连接时,服务器会创建一个新的线程来处理该客户端请求,从而实现并发处理。每个线程都会调用 `handle_client` 函数来处理客户端请求,该函数接收客户端连接对象和客户端地址作为参数,对客户端请求进行处理。
需要注意的是,在多线程编程中,需要考虑线程安全问题,特别是在共享数据的情况下,需要采取同步机制来保证数据的一致性和正确性。同时,多线程编程也需要注意资源管理问题,避免线程泄漏和资源竞争等问题的发生。
阅读全文