我正在编写处理来自两台服务器A& A的数据流的客户端代码。 B.所有三个节点都在同一本地子网上。我正在尝试创建两个如下所述定义的套接字。
套接字描述= [local / client IP]:[local / client port]:[remote / server IP]:[remote / server port]
连接到A的套接字:[192.168.40.10]:[50002]:[192.168.40.60]:[50002]
连接B的套接字:[192.168.40.10]:[50002]:[192.168.40.61]:[50002]
当我尝试打开第二个套接字时,我得到一个例外,“每个套接字地址a.k.a. protocol / network address / port只能使用一次”。我以为我可以定义一个不同的套接字,因为远程IP地址是不同的,即使本地IP地址和端口号是相同的。除了通过同一个套接字消耗两个数据流,我别无选择吗?
答案 0 :(得分:2)
您不能同时使用机器的同一本地端口两次。您可以在本地计算机上打开另一个套接字(带有另一个端口号,例如50003),并连接到[192.168.40.61]上的远程套接字:[50002]。
答案 1 :(得分:1)
您使用相同的TCP端口[50002]
进行连接以进行两种不可能的连接。您必须使用不同的端口才能有两个单独的套接字连接。
当您谈到唯一标识两个连接时,它会经过IP + PORT