- - PR -
ServerSocketのキューについて
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2008-10-01 22:26
いつもお世話になっております。
ServerSocketのキューに溜まった Socketについて質問があって投稿しました。 1)ServerSocket#accept()を実行すると ServerSocketのキューに溜まったSocketが取得できる。 2)キューのサイズは以下のコンストラクタで設定できる。 ServerSocket(int port, int backlog) 上記がjavaの仕様と理解しています。 上記内容を前提として、 キューに溜まったSocketはアクセス順に整列していて、 acceptをコールすることで、 キューに溜まったSocketのうち、 一番最初にアクセスしたSocketが取得できる。 つまり、アクセスしてきた順番にSocketが取得できる、 と思っているのですが、 この認識は間違っていますでしょうか。 どなたか詳しい方いらっしゃいましたら教えてください。 よろしくお願いします。 |
|
投稿日時: 2008-10-02 08:51
> つまり、アクセスしてきた順番にSocketが取得できる、
> と思っているのですが、 > この認識は間違っていますでしょうか。 キューというデータ構造は、特別の仕様(たとえばプライオリティ順)がないかぎり、その標準の動作をすると考えるべきでしょう。 なお、ServerSocketのキューではなく、低レベルTCPの接続キューです。accept()はそこから接続を取り出してJavaのSocketオブジェクトを作ります。 |
|
投稿日時: 2008-10-03 15:11
rancoさん
ありがとうございます。 内容、理解しました。 いろいろと試してみたのですが、 accept()で取得できるSocketはTCP接続を受けた順番にならないようです。 特にSocketFactoryを作成しているわけではないので、 内部では、PlainSocketImplを使っていることになります。 低レベルTCPの接続キューということなので、 accept()で取得できる順番は、nativeの仕様次第なのでしょうね。 |
1