0

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) 以外のメソッドを使用しようとしましたが、同じ結果が得られます。

4

0 に答える 0