Java Android TCP套接字不工作
我正在尝试使用Android应用程序连接到桌面上运行的服务器。 我尝试制作一个桌面Java程序来测试连接,它使用以下代码:Java Android TCP套接字不工作,java,c#,android,sockets,tcp,Java,C#,Android,Sockets,Tcp,我正在尝试使用Android应用程序连接到桌面上运行的服务器。 我尝试制作一个桌面Java程序来测试连接,它使用以下代码: Socket socket = new Socket(HOST, PORT); BufferedReader in = new BufferedReader( new InputStreamReader(socket.getInputStream())); System.out.println(in.readLine()); 它会立
Socket socket = new Socket(HOST, PORT);
BufferedReader in = new BufferedReader(
new InputStreamReader(socket.getInputStream()));
System.out.println(in.readLine());
它会立即打印服务器欢迎消息,我可以在服务器上看到一个新连接
然而,在Android上运行的相同代码(在单独的线程上)无法建立连接,我最终遇到了套接字超时异常
private class NetworkThread implements Runnable {
Socket socket;
@Override
public void run() {
try {
socket = new Socket(HOST, PORT);
BufferedReader in
= new BufferedReader(
new InputStreamReader(socket.getInputStream()));
textStatus.setText(in.readLine());
}catch (IOException ex){
Log.i("Network", ex.toString());
ex.printStackTrace();
}
}
}
线程是在这里创建的
public void onConnectBtnClick(View view) {
new Thread(new NetworkThread()).start();
}
主机是服务器的IP,端口是端口,在Java和Android客户端中具有相同的值。
我已经打开了防火墙上的端口,但安卓应用程序仍然无法连接,我无法连接
java.net.ConnectException: failed to connect to GPC/192.168.1.5 (port 399): connect failed: ETIMEDOUT (Connection timed out)
清单具有INTERNET和访问网络状态权限。我做错了什么?这是一个网络连接问题,而不是Java或编码问题。查看是否可以远程登录到该主机:端口。注意:您从未关闭插座,因此您正在泄漏连接;您只能从连接中读取一行;您不必检查该行是否为空。@EJP我可以从自己的计算机远程登录到主机并与服务器通信,但不能从连接到同一网络的另一台计算机。我已经在防火墙上打开了端口,我还需要做其他事情吗?