2012-04-25 4 views
2

我々はバックログが入ってくる 接続するためのキューの最大長として識別される宣言はServerSocketの上、明確には

public ServerSocket(int port, 
        int backlog) 
      throws IOException 

を持っている必要がありました。キューがいっぱいになったときに接続指示が到着した場合は、 接続が拒否されます。

は、バックログが、これはServerSocket意志acceptなしもっとして10台のクライアントを意味しています10.

に設定されているとしましょうか?ときにのみsock.close()下がるだろう

while (serverShouldStillBeRunning) { 
     Socket sock = clientSocket.accept(); 
     js.new Worker(sock).start(); 
    } 

バックログ番号:

が続きます。これは正しいです?

ソケットが現在処理しているどのように多くのオープン接続を知るための方法があります(他の言葉では、それがポイントにどれだけ近いか、それはあきらめて新しい接続を拒否し始めるとき)

答えて

2

バックログがのキューを表し処理待ちの接続。

.accept()の場合、これらの接続の1つが処理され、キューに存在しなくなり、バックログが1つ減少します。