我无法将Android手机上的插座连接到运行netcat的计算机上侦听端口(5555)。
我在Android应用中运行的内容:
try {
Socket s = new Socket("My IP number here (not local IP)", 5555);
DataOutputStream outToServer = new DataOutputStream(s.getOutputStream());
outToServer.writeBytes("Hello!");
s.close();
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
这是我用于netcat的行:nc -l 5555
我不确定我错过了什么.. 我已经转发了路由器上的端口并重新启动了路由器。在我的Android应用程序中添加了对Internet的权限。 手机通过3G连接,我的电脑通过宽带连接。 我的防火墙允许使用netcat。
尝试连接时,我的应用中出现SocketTimeoutException
错误。
我猜路由器负责处理局域网中的哪台计算机将收到请求。
任何人都知道我错过了什么?
编辑:我想我可能已经找到了问题。我的路由器Virtual Server
和Port forwarding
有两个选项。我不知道在UDP / TCP中设置哪个端口5555。
根据我的理解Virtual Server
我应该使用而不是端口转发?如果是这样,有人可以澄清两者之间的区别吗?
答案 0 :(得分:1)
自上次配置以来,我的计算机更改了本地IP,因此我的Virtual Server
/ Port Forwarding
规则不适用,因此我对其进行了更新(从192.168.0.199 - > 192.168.0.19 6 )现在效果很好。
所有步骤都适用:
Virtual Server
/ Port Forwarding
设置规则。Inbound Filtering
规则,以防您希望仅允许列入白名单的IP并传播到下一个安全层。