Python套接字-使用相同的src IP/端口连接不';行不通
我已将服务器绑定到特定端口:Python套接字-使用相同的src IP/端口连接不';行不通,python,sockets,tcp,Python,Sockets,Tcp,我已将服务器绑定到特定端口: serv_sock = socket(AF_INET, SOCK_STREAM) serv_sock.setsockopt(SOL_SOCKET, SO_REUSEADDR, 1) serv_sock.bind((gethostname(), MAGIC_FLOW_PORT)) serv_sock.listen(MAX_MAGIC_FLOWS) while True: (client_sock, address) = serv_sock.accept()
serv_sock = socket(AF_INET, SOCK_STREAM)
serv_sock.setsockopt(SOL_SOCKET, SO_REUSEADDR, 1)
serv_sock.bind((gethostname(), MAGIC_FLOW_PORT))
serv_sock.listen(MAX_MAGIC_FLOWS)
while True:
(client_sock, address) = serv_sock.accept()
print "Accepted a flow"
客户会这样做:
client_sock = socket(AF_INET, SOCK_STREAM)
client_sock.bind((gethostname(), MAGIC_FLOW_PORT+1))
client_sock.connect((server_ip, MAGIC_FLOW_PORT))
while True:
client_socket.send("ABCDEF")
time.sleep(5)
因此,客户机每5秒发送一个TCP/IP数据包,其中src端口MAGIC_FLOW_port+1和dst端口MAGIC_FLOW_port。
我在服务器中启用了tcpdump,我可以按预期每隔5秒看到一次数据包。但是,服务器只打印一次“Accepted a flow”,之后什么也不打印
但是,如果我在客户端套接字中注释这一行:
client_sock.bind((gethostname(), MAGIC_FLOW_PORT+1))
然后,客户机每次生成一个具有不同src端口的数据包,服务器接受该数据包。我还尝试了服务器
serv_sock.setsockopt(SOL_SOCKET, SO_REUSEPORT, 1)
我仍然不知道第二个包是从服务器上取的
我是否可以使用同一src IP/端口多次连接到同一服务器
谢谢如果您有权限,绑定到某个端口应始终有效(