首页 新闻 搜索 专区 学院

关于socket 局域网 IP+Port问题

0
悬赏园豆:50 [已解决问题] 解决于 2017-09-25 19:34

我写好一个socket服务端放到一个外网服务器上,然后有一个客户公司是个局域网,一个NAT口下有N台电脑。客户端创建socket的时候是IP+Port的,那N台电脑的外网IP肯定是一样,创建的socket端口是否会重复一样?

服务器会不会收到2个socket连接的终结点是一样的?A电脑:111.111.11.11:90001,B电脑 111.111.11.11:90001。

 

如果知道此问题的朋友给个可靠的回答,其它不懂的就不要掺和。谢谢

Diose的主页 Diose | 初学一级 | 园豆:3
提问于:2017-09-23 12:10
< >
分享
最佳答案
2

路由器会进行端口号转换,服务器收到的是转换后的端口号,不同电脑,端口号不同

详见 How do two computers connect to same external address through NAT?

收获园豆:50
dudu | 高人七级 |园豆:39034 | 2017-09-23 15:02
其他回答(2)
0

服务器收到的IP一样,但端口不一样,端口会是转换成外网的端口。这正是NAT的作用所在。

并且,你建立连接时指定的端口都是服务器的地址和端口,跟客户端本身无关。

女孩不哭 | 园豆:469 (菜鸟二级) | 2017-09-24 04:09
0

 端口不用管,你可以在服务端收到请求后把端口显示出来,即使是同一台电脑多个客户端也会是不同的端口的,

jqw2009 | 园豆:1946 (小虾三级) | 2017-09-24 13:58
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册