TCP连接在远程主机上不起作用

时间:2013-08-22 07:28:26

标签: java android tcp

我想使用TCP套接字连接远程服务器。

当客户端和服务器连接到同一网络时,一切正常。从Android客户端发送请求并收到服务器的响应。连接到不同的网络后,服务器从Android主机收到我的消息但没有响应。

我正在使用免费的Google Play Telnet和TCP应用程序测试此连接,它运行正常,所以我认为问题出现在我的代码中。

 public static void onsocket() {
    // TODO Auto-generated method stub
    Socket socket = null;


    try {
        socket = new Socket(address, port);
        dataOutputStream = new DataOutputStream(socket.getOutputStream());
        dataInputStream = new DataInputStream(socket.getInputStream());
        dataOutputStream.writeUTF();
        Log.w(TAG, "Response from server: " + dataInputStream.readUTF());
    } catch (UnknownHostException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
    finally{
        if (socket != null){
            try {
                socket.close();
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }

        if (dataOutputStream != null){
            try {
                dataOutputStream.close();
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }

        if (dataInputStream != null){
            try {
                dataInputStream.close();
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
    }
}

我也尝试过使用writeUTF / readUTF(write& flush / read)以外的方法,但是得到了相同的结果。

0 个答案:

没有答案