1

ServerSocketへの着信接続をチェックする方法はありますか?そうすれば、誰かが接続するのを待っているときにサーバーが停止しません。

私はのようなものが必要です

try {
if (server.thereisarequest()) {
Socket socket = server.accept();
}
}
4

3 に答える 3

1

シンプルに保つ...無限 while ループを使用して、サーバーに着信要求を検索させます...これがほとんどのサーバーの動作方法です。

while (true) {

incoming = s.accept();  // incoming is of type Socket.                              

}
于 2012-09-06T18:19:42.547 に答える
1

これでよろしいですか?コードが提示されると、1つのスレッドだけが待機します。サーバーが停止しないように、受け入れられた接続を処理する別のスレッドを実行します。Javaノンブロッキング非同期I/O(nioおよびnio2)を使用することもできますが、バックグラウンドにはとにかくオンデューティのスレッドがあります。

于 2012-09-06T18:27:30.107 に答える
0

接続を受け入れるための新しいスレッドを作成できます。

次に、2つの選択肢があります。

  • 新しいスレッドでソケットを処理します
  • ソケットをキュー(ConcurrentLinkedQueue)に入れ、メインスレッドからキューに入れて確認します。
于 2012-09-06T18:29:03.207 に答える