Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/383.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/227.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java TCP连接在远程主机上不工作_Java_Android_Tcp - Fatal编程技术网

Java TCP连接在远程主机上不工作

Java TCP连接在远程主机上不工作,java,android,tcp,Java,Android,Tcp,我想使用TCP套接字连接远程服务器 当客户端和服务器连接到同一个网络时,一切正常。有一个来自Android客户端的请求和一个来自服务器的响应,连接到不同的网络后,服务器从Android主机收到我的消息,但没有响应 我正在用免费的Google Play Telnet和TCP应用程序测试这个连接,它工作得很好,所以我认为问题出在我的代码中 public static void onsocket() { // TODO Auto-generated method stub Socke

我想使用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)以外的方法,但我得到了相同的结果。

您的服务器可以ping您的Android主机吗?如果没有,则存在(主题外)路由问题。正如我编写的那样,其他应用程序可以向我的设备发送响应,ping工作正常。除非另一端使用
writeUTF(),
,否则不能使用
readUTF()
,反之亦然。