Android TCP套接字无法正常工作

时间:2015-01-31 00:15:48

标签: 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上运行的相同代码(在单独的线程上)无法建立连接,最终导致套接字超时异常。

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();
    }

HOST是服务器的IP,PORT是端口,在Java和Android客户端中具有相同的值。 我在我的防火墙中打开了端口,但是Android应用程序仍然无法建立连接,我得到了

java.net.ConnectException: failed to connect to GPC/192.168.1.5 (port 399): connect failed: ETIMEDOUT (Connection timed out)

清单具有INTERNET和ACCESS_NETWORK_STATE权限。我做错了什么?

0 个答案:

没有答案