我正在为我的媒体播放器编写C#遥控器。它在我的Android手机上运行。
我有一个客户端应用程序在我的计算机上侦听TCP连接,其中一个已建立连接,处理命令(音量增大,音量减小,......)。我已经在我的计算机上使用telnet 127.0.0.1
对该部分进行了测试,效果很好。
从手机连接时,事情变得更加棘手,因为它不在同一个网络上(我没有Wi-Fi,只有有线连接),所以我不知道如何继续。基本上我想连接到路由器后面的计算机。
我是否应该在手机上托管TCP服务器,并让PC连接到它?以IRC为例:虽然我在路由器后面,但我可以连接到外部服务器,无需端口转发。 或者,如果在我的计算机上托管服务器很好,我该如何连接它呢?
我还不明白这一切,如果我出错了,请随时纠正我。
答案 0 :(得分:6)
保持PC托管服务器并配置路由器以转发与PC的连接更合乎逻辑。您有两种选择:
如何设置这些取决于您的路由器,但大多数路由器只接受其端口80上的连接并提供简单的Web界面。如果您提供路由器品牌,我们可以将您链接到手册。
答案 1 :(得分:6)
从手机连接起来,事情变得棘手了 它不在同一个网络上(我没有Wi-Fi,只有有线网络 连接),所以我不知道如何继续。基本上我想 连接到路由器后面的计算机。
您希望实现的目标是什么,但您需要了解NAT遍历和打孔。
大多数情况下,NAT /路由器后面的设备只有一个在LAN上有效的私有IP地址。远程设备无法猜测它。当设备想要与WAN通信时,NAT将该私有地址转换为公共IP地址。
简单的解决方案是您可以为NAT后面的设备提供公共IP地址。在这种情况下,WAN上的远程设备很容易就能到达它,因为它的地址是公共的。