首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

C# Socket 怎么获得客户端的NAT IP和端口号

2013-02-25 
C# Socket 如何获得客户端的NAT IP和端口号?如果客户端A在路由器下的局域网中,服务器B在公网上,如果A使用T

C# Socket 如何获得客户端的NAT IP和端口号?
如果客户端A在路由器下的局域网中,服务器B在公网上,
如果A使用TCP或UDP向B发送一个消息,那么用B的Socket.RemoteEndPoint读取到的是A所在路由器的NAT IP和端口号吗?
如果不是B怎么读取到A的NAT IP和端口号?

[解决办法]
是A所在路由器的NAT IP和端口号 每次连接端口号都会改变 IP不变
[解决办法]
http://blog.csdn.net/fengyarongaa/archive/2011/06/16/6547841.aspx
[解决办法]

引用:
另外我还想问下各位大神,如果服务器B也想发消息给客户机A,那么是不是B必须先从A发过来的消息中获取到A的NAT IP和端口号,然后B把消息发送到A的NAT IP和端口号,A所在路由器收到B发送过来的消息后再转发给A?


你可以找一个NAT路由“打洞”的资料看看。

关于前一个端口问题,其实不同的设备会有不同的处理。有的不变,有的每一次都变。
[解决办法]
使用UDP协议 Symmetric NAT下端口也会改变
客户端与服务器的通信 需要客户端首先发起 也就是向服务器发送信息 建立一个通路 也就是"洞" 客户端才能成功接收服务器发送的信息 如由服务器直接发信息给客户端(客户端未发送过信息给服务器) 则服务器发送的信息将会被客户端抛弃
[解决办法]
http://blog.csdn.net/oONukeOo/archive/2010/10/15/5942441.aspx
参考

热点排行