1

Java のソケットに関するいくつかのチュートリアルを読みましたが、ServerSocket クラスの使用方法について、例によって説明が異なることがわかりました。

たとえば、次の 2 つの異なる実装があります。

 Socket s = serverSocket.accept();
 //using s

while(true)
{
   Socket s = serverSocket.accept();
}

これら2つのケースの違いは何ですか?

4

3 に答える 3

7

最初の接続は 1 つの接続のみを受け入れますが、2 番目の接続はさらに多くの接続を受け入れ続けます (到達するたびにSocket s = serverSocket.accept();) 。

于 2012-05-12T18:02:12.280 に答える
2

ドキュメントから:

このソケットへの接続をリッスンし、それを受け入れます。メソッドは、接続が確立されるまでブロックします。

最初の例では、1 つの接続のみで作業しています。2 番目の例では、手動で停止するまで無制限の接続を使用しています ( break) 。

于 2012-05-12T18:02:26.523 に答える
2

2 番目の例では、明らかにaccept接続が永久に保持されます。

于 2012-05-12T18:03:07.770 に答える