【问题标题】:Hosting a game on a PC - UDP or UPNP communication?在 PC 上托管游戏 - UDP 或 UPNP 通信?
【发布时间】:2011-11-18 17:53:52
【问题描述】:

我已经为我希望普通人使用的游戏构建了一个服务器应用程序。现在,由于我以前使用过客户端/服务器解决方案,我知道在某些计算机上托管连接是多么乏味。

所以,我听说了这些谣言,我想得到证实。

  1. 使用 UDP 来“托管”连接很好,因为与 TCP 相比,它很少被路由器防火墙阻止。

  2. 使用 UPNP 与路由器通信很好,因为它允许您为游戏添加端口转发,无论您使用 TCP 还是 UDP,都可以访问您的服务器。

我不关心人们可能使用的软件防火墙。我关心的是路由器防火墙功能。

任何帮助将不胜感激。

谢谢!

【问题讨论】:

  • UDP 和 UPNP 是完全不同的东西。这就像比较苹果和拖拉机。
  • 我不是在比较。阅读问题。
  • 标题造成了这种混乱,UDP和UPNP之间不应该有or。修改你的标题,你会得到更多帮助。

标签: c# c#-4.0 udp upnp


【解决方案1】:

对于你的两个谣言,

  1. 我不知道,我对防火墙的使用还不够,但我不会认为这是真的。大多数路由器会阻止所有内容(TCP 和 UDP),除非您通过手动设置或 UPNP 明确要求它转发入站连接。如果你不告诉路由器什么计算机想要信息进入端口 12345,当用户向它发送一个未经请求的数据包时它怎么知道该怎么做(作为服务器的定义)。

  2. 是的,学习如何进行 UPNP 将使您的用户更轻松地托管游戏,但是您仍然应该为没有打开 UPNP 或他们的路由器不支持它的人提供说明。

您可能想要了解的另一件事是学习如何将您的程序添加到 Windows 防火墙客户端允许列表中,因为这是您的大多数用户所拥有的。详情请见this SO question

【讨论】:

  • 家庭路由器的默认端口转发策略对于 UDP 与 TCP 之间几乎不会有太大差异。但是,对于常见的“NAT 冲孔”库,可能会有所不同。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2023-03-23
  • 1970-01-01
  • 2017-11-28
  • 2011-09-27
  • 1970-01-01
  • 2016-11-19
  • 2016-05-14
相关资源
最近更新 更多