我有两个应用程序。一个是服务器应用程序,另一个是客户端应用程序。服务器应用程序侦听连接,然后将消息提供给所有连接的客户端。客户端/服务器安装只能在同一台机器上运行
到目前为止,我的所有测试都是通过在同一台机器上运行这两个应用程序来完成的,而且这种方式工作正常。现在尽管我试图测试在一台机器上运行的服务器以及在另一台机器上运行的客户机。
这些机器都在我自己的家庭网络中。该网络位于具有防火墙的路由器之后。从我读过的内容来看,我的问题可能与端口转发有关,而不是在我的路由器上设置。这听起来可能吗?
这是我可以用我的代码修复吗?我是否真的必须要求所有用户手动打开防火墙上的端口?我使用了很多其他连接到服务器的商业应用程序,并且不需要我在我的防火墙上打开端口。这些应用程序和我的有什么不同?
然后,也许我在这里吠叫错误的树。也许还有一些其他问题阻止我的代码在这种情况下工作?
我可以提供的任何代码段,可能会有所帮助,但我不能确定在何处开始寻找,我不想只是张贴我的整个解决方案:)
预先感谢您
这与您的路由器无关。您必须绑定到服务器上的外部地址(例如192.168.1.X或INADDR_ANY(0.0.0.0)),并使用客户端连接到该计算机的外部IP地址。 –
我的服务器已经做了绑定。它最终绑定到特定的IPv6地址。我的客户可以连接2种方式之一;到该特定的IPv6地址或服务器主机的名称。当客户端应用程序在服务器机器上运行时都可以工作。但是,当应用程序位于同一网络中的不同PC上时,它们都不起作用。我认为那个特定的IPv6地址可能是本地IP。你认为这可能是问题吗? – FunnerSoft
@SnapGames:你可以发布你的约束力地址吗? – mauve