我的意思是一些类似服务器的行为(在一个端口上持有大量客户端)。所以我试图从单个本地端口连接到N个服务器。 有没有办法做到这一点?
我试过了:
答案 0 :(得分:0)
我不认为你可以,因为套接字对象只需要一个参数。你只需要创建另一个套接字对象
答案 1 :(得分:0)
是否可以使用单个端口连接到多个服务器?
这取决于操作系统。例如,Linux 3.9或更高版本具有SO_REUSEPORT
套接字选项(源自BSD)。在这样的系统上,以下程序可以成功运行:
from socket import *
single_local_port = 12345
server1 = ('127.0.0.1', 80) # just an example address
server2 = ('10.28.130.10', 80) # just another example address
s1 = socket(AF_INET, SOCK_STREAM)
s1.setsockopt(SOL_SOCKET, SO_REUSEPORT, 1)
s1.bind(('', single_local_port))
s1.connect(server1)
s2 = socket(AF_INET, SOCK_STREAM)
s2.setsockopt(SOL_SOCKET, SO_REUSEPORT, 1)
s2.bind(('', single_local_port))# no problem binding to same port
s2.connect(server2)