python 同时启动多个socket监听不同的端口,并处理相应的消息
时间: 2024-02-19 21:59:13 浏览: 223
可以使用 Python 中的多线程或者多进程来同时启动多个 socket 监听不同的端口,并处理相应的消息。
以下是一个使用多线程的示例代码:
```python
import threading
import socket
# 定义一个处理消息的函数
def handle_message(conn, addr):
while True:
data = conn.recv(1024)
if not data:
break
# 处理消息
print('Received message from {}: {}'.format(addr, data.decode()))
conn.close()
# 启动多个 socket 监听不同的端口
ports = [8000, 8001, 8002]
for port in ports:
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.bind(('localhost', port))
s.listen(5)
print('Listening on port', port)
# 使用多线程处理连接
while True:
conn, addr = s.accept()
print('Connected by', addr)
t = threading.Thread(target=handle_message, args=(conn, addr))
t.start()
```
在这个示例代码中,我们使用了 `socket` 模块来创建并监听多个端口。对于每个连接,我们都会启动一个新的线程来处理消息。这样就可以同时处理多个连接,提高了程序的并发性能。
阅读全文