0

クライアント入力ストリームをリッスンするサーバー ソケットを作成しようとしていますが、start_listening()メソッドを実行すると、プログラムが停止します。ループを削除しようとしましたが、まだ同じ問題があります。クライアントのやり取りを待っていると思います。プログラムも動作している間に聞く別の方法はありますか?

public static void start_listening(){

listener = new ServerSocket(9090);

while (true) {          
Socket socket = listener.accept();      
ObjectInputStream in = new ObjectInputStream(socket.getInputStream());
us = (User) in.readObject();
}

}
4

3 に答える 3

1

ループが終了しないことに加えて (ある時点で壊れると思います)、別のThreadまたはAsyncTaskでそのようなことを行う必要があります。メイン スレッドで accept を行うと、誰かがソケットに接続するまで Andriod がフリーズします。それがあなたのプログラムが動かなくなる理由です。

于 2013-06-22T21:21:58.703 に答える
0

Boolean flagwhile ループをいつ終了するかを示すためにa を使用するだけかもしれません。

while (true) {    //will it ever breaks ??

}
于 2013-06-22T21:00:38.007 に答える