python - 在 Python 2.x 中同时连接和处理多个原始套接字

标签 python multithreading sockets multiprocessing raw-sockets

我是 Python 新手,正在尝试“在工作中”学习它。我必须这样做。

我需要通过原始套接字连接与 3 个服务器进行通信。我可以轻松地按顺序完成此操作。但我想知道是否有办法可以同时与这 3 个服务器通信?所有 3 个服务器都有不同的 IP 地址。

基本上尝试执行以下操作,但只需一步:

s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect((HOST1, PORT1))
s.connect((HOST2, PORT1))
s.connect((HOST3, PORT1))

稍后还需要 s.sendall()s.recv() 进行并行化。

最佳答案

如果你只有一个监听线程,你可以使用 select 在多个套接字上等待,并在其中任何一个返回数据时被唤醒:

https://docs.python.org/2/library/select.html

关于python - 在 Python 2.x 中同时连接和处理多个原始套接字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39280687/

相关文章:

python - 如何从列表中创建邻接矩阵?

python - Django:在 django-tables2 中如何修改 URLField 的呈现方式

c# - 在多个线程之间共享一个 List<T>

Java 多客户端服务器套接字。管道破裂检测

c - 如何通知服务器客户端正在关闭连接

python - 表删除后 SQLAlchemy 行为不正确

java - 多个线程将对象引用传递给静态辅助方法

java - Socket.connect 关闭后但连接前

java - 如何测量使用Sockets和并发时的时间

python - requests.exceptions.SSLError : [Errno 8] _ssl. c:504: EOF 发生违反协议(protocol)