Java 从android客户端应用程序连接套接字到服务器时出现问题
我在将android手机的插座连接到运行netcat的计算机时遇到了问题,正在通过端口(5555)进行监听 我在android应用程序中运行的内容:Java 从android客户端应用程序连接套接字到服务器时出现问题,java,android,sockets,client,Java,Android,Sockets,Client,我在将android手机的插座连接到运行netcat的计算机时遇到了问题,正在通过端口(5555)进行监听 我在android应用程序中运行的内容: try { Socket s = new Socket("My IP number here (not local IP)", 5555); DataOutputStream outToServer = new DataOutputStream(s.getOutputStream()); ou
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应用程序中添加了互联网权限。
手机通过3G连接,我的电脑通过宽带连接。
我的防火墙允许使用netcat
尝试连接时,我的应用程序中出现SocketTimeoutException
错误
我猜路由器负责处理LAN中的哪台计算机将接收请求
有人知道我错过了什么吗
编辑:我想我可能已经找到了问题所在。。我的路由器上有两个选项虚拟服务器
和端口转发
。我不知道在UDP/TCP中设置哪个端口为5555。
据我所知,我应该使用
虚拟服务器
而不是端口转发?如果是的话,有人能澄清两者之间的区别吗 自上次配置以来,我的计算机已更改了本地IP,因此我的虚拟服务器
/端口转发
规则不适用,因此我对其进行了更新(从192.168.0.199->192.168.0.196),现在它运行良好
因此,所有步骤都适用:
- 为路由器上的
/虚拟服务器
设置规则端口转发
- 为路由器上的
入站过滤设置规则,以防您只允许白名单上的IP连接并传播到下一个安全层李>
- 如果您的路由器具有任何其他防火墙设置,请创建允许建立连接的规则
- 在服务器/计算机上,允许防火墙中的端口或正在运行的应用程序接收入站连接李>
- 利润强>