Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/lua/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python套接字-使用相同的src IP/端口连接不';行不通_Python_Sockets_Tcp - Fatal编程技术网

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/端口多次连接到同一服务器


谢谢

如果您有权限,绑定到某个端口应始终有效(