0

何らかの理由で、コンピューターとの接続を待機するアンドロイド SocketServer をセットアップする必要があります。すべてが順調に進んでおり、クライアント (コンピューター) とのソケットが作成されていますが、ストリームが開きません。エラーやメッセージなしで一時停止しています。

クライアント:

        s = new Socket(ip, 4567);
        ois = new ObjectInputStream(s.getInputStream());
        System.out.println("ois..");// not showing, so can't open input stream
        oos = new ObjectOutputStream(s.getOutputStream());
        System.out.println("oos..");  // same here

サーバ:

        socket = new ServerSocket(4567);
        System.out.println("Waiting for connection,,"); // showing
        client = socket.accept();
        System.out.println("Connected"); //showing
        ois = new ObjectInputStream(client.getInputStream());

        System.out.println("ois.."); // not showing
        oos = new ObjectOutputStream(client.getOutputStream());
        System.out.println("oos.."); // not showing too
        System.out.println("Stream,s opened");

私のapkにはインターネット権限があります。4567 ポートを使用しています。他のアプリケーションはポートをブロックしません。

何が間違っている可能性がありますか?

4

2 に答える 2

3

サーバーで最初にObjectOutputStreamを開いてみてください。

    socket = new ServerSocket(4567);
    System.out.println("Waiting for connection,,"); // showing
    client = socket.accept();
    System.out.println("Connected"); //showing
    oos = new ObjectOutputStream(client.getOutputStream());
    ois = new ObjectInputStream(client.getInputStream());
    System.out.println("Stream,s opened");
于 2012-04-26T18:42:58.623 に答える
2

そこにタイムアウトは表示されません。そのため、タイムアウトが停止します。

おそらくネットワークの問題があります。デバイスのIPアドレスが正しいことを確認しましたか?

可能性は低いですが、接続をブロックするファイアウォールルールが存在する可能性があります。

于 2012-04-26T18:42:03.513 に答える