広告
広告
クライアントからの接続を受け入れるよう OS に指示を出す関数です。成功時には真を返し、失敗時には偽を返します。listen が実行されるとOS は接続してきたクライアントとの接続を確立し待ち行列に登録します。この待ち行列への登録作業はプロセスからは見ることができず、全て OS が陰で行います。この後accept を実行することでクライアントと実際に接続することができます。QUEUESIZE にはまだ accept されていないコネクション(OS が待たせているコネクション)の最大数を指定します。もし QUEUESIZE 以上のクライアントが同時に connect してきた場合、サーバは接続を拒否するか何もレスポンスを返しません。QUEUSIZE には直接数字を指定してもよいのですが、実際に何個のクライアントを受け付けるかは OS により異なります。QUEUESIZE の解釈は OS によって異なり、BSD 系 OS では QUEUESIZE に 1.5 を乗じた値が使われます。Solaris 2.6 や HP-UX では適当な係数を乗じた値が使われます。Linux では QUEUESIZE に指定した値がそのまま使われます。Solaris2.5.1 では +1 した値が使われます。use Socket として Socket モジュールを使っているならば、QUEUESIZE に SOMAXCONN を指定することができます。これは OS が許す最大値を意味します。
listen(CLIENT_WAITING, SOMAXCONN)
広告