0

ホストに接続して他のPCで実行されているサーバーに接続するための最初のソケットプログラムを作成しています。次のリンクを参照していますが、この行の意味がわかりませんでした。

http://www.thegeekstuff.com/2011/12/c-socket-programming/

2 番目の引数を '10' として関数 'listen()' を呼び出すと、サーバーがこのリスニング ソケットのキューに入れるクライアント接続の最大数が指定されます。

新しい接続要求を 10 回リッスンすることを意味します。リッスン時に実際に何が起こるか:?:

一部のクライアントがソケットに正しく接続すると、while ループに入ります。While :?: の 2 番目のループでクライアントがソケットへの接続を要求していない場合、while ループ内ではブロックが受け入れられます。

while ループの中にいるとき、listen() システム コールはまだ機能しているか、終了していますか :?:

また、 while ループから抜け出すとき :?:

フォーラムの誰かがこれを理解するのを手伝ってくれますか。

4

1 に答える 1

0

このlisten呼び出しが行うことは、新しい接続に使用するキューのサイズをシステムに伝えることです。このキューは、まだ受け入れていない接続に対してのみ使用されるため、接続の合計数ではありません。

着信接続キューのサイズを設定するだけでなく、ソケットがパッシブ リスニング ソケットであることを示すフラグも設定します。

行うものlistenはソケットに設定されるため、ソケットがキューを開いてフラグが有効である限り。

于 2012-11-28T07:01:49.140 に答える