我开发了一个在局域网上运行良好的客户端/服务器应用程序,现在我想尝试将客户端放在远程站点上并尝试让它与服务器通信。我该怎么做呢?它只是提供外部世界的IP。
我想我必须在路由器上做一些端口转发,说如果数据到达这个端口,那么就转到这台电脑。但我的问题是,当像Skype这样的应用程序打开时,我们如何连接到其他人的视频流而无需进行任何端口转发?
任何帮助都会有很大的帮助!
提前致谢
答案 0 :(得分:0)
首先,您需要确保您的ISP为您提供公共IP地址。确保您的IP不在以下IP范围内:
如果您的IP处于其中一个范围内 - 您就遇到了麻烦。您可以尝试联系您的ISP以获取更多信息(有些人将公共IP作为免费选项,有些需要您付费才能获得一个,而有些人根本不提供公共IP)。
如果您有公共IP地址 - 您需要在路由器上配置端口转发。对于不同的路由器,此过程可能略有不同,但归结为必须定义要转发的外部端口,本地端口(要转发的端口,通常两个端口号都相同,除非您要重定向外部端口您希望允许从WAN访问的协议(在您的情况下为UDP)和LAN中的计算机的IP。
之后,您的机器应该可以从WAN访问。
关于Skype等应用程序的问题 - 有几种方法可以避免端口转发。首先 - Skype使用可从互联网访问的服务器。您不需要转发端口来访问Internet上的服务器,但服务器所有者可能需要这样做。第二 - Skype使用Peer-to-Peer系统。不在NAT之后(或设置端口转发)的机器可以充当一种服务器,没有端口转发设置的人可以使用他们的机器接受连接并通过它们发送数据和视频流。因此,即使在闲置时,Skype仍可能导致额外的网络负载,因为它充当了P2P网络的一部分。