我已经为我希望普通人使用的游戏构建了一个服务器应用程序。现在,由于我之前使用过客户端/服务器解决方案,我知道在某些计算机上托管连接是多么乏味。
所以,我听说了这些我想得到证实的谣言。
使用 UDP 来“托管”连接很好,因为与 TCP 相比,它很少被路由器防火墙阻止。
使用 UPNP 与路由器通信很好,因为它允许您为游戏添加端口转发,无论您使用的是 TCP 还是 UDP,您的服务器都可以访问。
我不关心人们可能使用的软件防火墙。我关心的是路由器防火墙功能。
任何帮助,将不胜感激。
谢谢!
对于你的两个谣言,
我不知道,我对防火墙的使用还不够,但我不会认为那是真的。大多数路由器会阻止所有内容(TCP 和 UDP),除非您通过手动设置或 UPNP 明确要求它转发入站连接。如果您不告诉路由器什么计算机想要信息进入端口 12345,那么当用户向其发送未经请求的数据包时(作为服务器的定义),它将如何知道该怎么做。
是的,学习如何进行 UPNP 将使您的用户更容易托管游戏,但是您仍然应该为没有打开 UPNP 或他们的路由器不支持它的人提供说明。
您可能想要查看的另一件事是学习如何将您的程序添加到 Windows 防火墙客户端允许列表,因为这是您的大多数用户将拥有的。有关更多详细信息,请参阅此 SO 问题。