NAT很好穿越的,麻烦的是有些NAT跟FireWall是集成的,而firewall是有访问规则限制的,也就是说如果外网想回包给内网,必须是内网先主动发一个包给外网。这部分有个RFC 规范称为ICE的,见这篇文章http://tools.ietf.org/rfc/rfc6336.txt 注意,ICE不是一个单一的规范,而是STUN+Turn方案的总称。 总之,NAT打洞是一个过程,跟C#或是C++或是Python、Java无关。
NAT很好穿越的,麻烦的是有些NAT跟FireWall是集成的,而firewall是有访问规则限制的,也就是说如果外网想回包给内网,必须是内网先主动发一个包给外网。这部分有个RFC 规范称为ICE的,见这篇文章
http://tools.ietf.org/rfc/rfc6336.txt
注意,ICE不是一个单一的规范,而是STUN+Turn方案的总称。
总之,NAT打洞是一个过程,跟C#或是C++或是Python、Java无关。