首页 文章

服务器连接到NAT后面的客户端[关闭]

提问于
浏览
4

我在C#中创建了一个服务器/客户端应用程序 .

我的问题如下:假设客户端在NAT(如路由器)后面,并尝试连接到服务器 . 从服务器的角度来看,服务器只知道客户端的外部IP地址 . 如何确定将数据包发送到NAT后面的确切计算机?我理解客户端路由器的端口转发是解决这类问题的常用方法但是如果你看一下像Skype这样的应用程序,没有必要端口转发来正确 Build 服务器和NAT背后的许多客户端之间的连接 . 也可以反过来问这个问题(I.E:客户端到NAT后面的服务器) .

我对插座编程很陌生,所以我很乐意听到任何我可以阅读的指南或材料来完全理解这些东西 .

1 回答

  • 2

    您不应该担心应用程序层中的NAT . 如果您收到IP为200.51.255.79的消息,则可以将答案发送到同一IP . 路由器将自动处理NAT并进一步路由 . 它当然不是这样的端口转发,而是NAT .

    Skype以一种非常有趣的方式使用当前ips和端口的服务器端数据库绕过端口转发和防火墙,每个用户都在等待响应 . 你应该在互联网上查看完整的解释 . 这是一个非常好的阅读=) .

相关问题