ServerSocketへの着信接続をチェックする方法はありますか?そうすれば、誰かが接続するのを待っているときにサーバーが停止しません。
私はのようなものが必要です
try {
if (server.thereisarequest()) {
Socket socket = server.accept();
}
}
シンプルに保つ...無限 while
ループを使用して、サーバーに着信要求を検索させます...これがほとんどのサーバーの動作方法です。
while (true) {
incoming = s.accept(); // incoming is of type Socket.
}
これでよろしいですか?コードが提示されると、1つのスレッドだけが待機します。サーバーが停止しないように、受け入れられた接続を処理する別のスレッドを実行します。Javaノンブロッキング非同期I/O(nioおよびnio2)を使用することもできますが、バックグラウンドにはとにかくオンデューティのスレッドがあります。
接続を受け入れるための新しいスレッドを作成できます。
次に、2つの選択肢があります。
ConcurrentLinkedQueue
)に入れ、メインスレッドからキューに入れて確認します。