Java Android TCP套接字不工作

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()); 它会立

我正在尝试使用Android应用程序连接到桌面上运行的服务器。 我尝试制作一个桌面Java程序来测试连接,它使用以下代码:

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我可以从自己的计算机远程登录到主机并与服务器通信,但不能从连接到同一网络的另一台计算机。我已经在防火墙上打开了端口,我还需要做其他事情吗?