就是这样。这可能是一个新手问题。由于NAT和防火墙问题,我几乎放弃了TcpClient / Listener。我想知道是否有另一种选择。端口80可能不必处理任何这些烦人的事情。我希望答案是肯定的。
答案 0 :(得分:2)
如何通过WebScockets SignalR
答案 1 :(得分:2)
是的,您可以在非浏览器应用程序中实现WebSockets,但它无法解决您的问题。
当您尝试打开侦听websocket连接的服务器时,您将遇到在创建正常套接字连接时遇到的相同问题:个人防火墙解决方案将阻碍而不是每个路由器都会转发您的端口已经选择了。使用着名的端口80对您没有帮助。普通消费者在NAT路由器后面运行网络服务器的情况并不常见,因此默认情况下,除非经过特别配置,否则NAT路由器不会转发该端口。
NAT路由器通常会阻止其后面的任何主机充当服务器,除非配置为允许它。如果您希望用户不必担心其NAT配置,则两个用户都必须充当客户端。唯一的方法是让所有玩家都连接到一个中央服务器。
虽然托管服务器仍然不是免费的,但由于基于云的托管服务商将以非常适中的价格向您租用小型虚拟化服务器,因此它变得相当便宜。来自Amazon EC2的最小实例仅花费您每小时2美分或每月14.40美元。或者您可以从一些备件构建自己的服务器并将其托管在您自己的Internet连接上。如果您没有静态IP地址,则可以使用动态名称服务器服务,例如no-ip或DynDNS。
答案 2 :(得分:1)
是的,你可以,但请不要。 我建议改变你的架构:
使用服务器套接字作为处理客户端的主要点。此服务器必须具有可见的IP /端口。在这种情况下,你可能有坚果的客户,不要打扰。