inet_ntop()
数値アドレスを文字列に変換したものの先頭アドレスを返す。
数値アドレスを文字列に変換したものの先頭アドレスを返す。
int型。 socket関数の戻り値。 ソケット生成に失敗したときは-1が入る。 取りうる範囲はどこからどこまでなんだろ? 0も含まれるのか? ソケットを複数生成したときは、自動的にソケットディスクリプタが重複しないよう…
AF_INETが指定されてる場合、 IPv4アドレスを使用するってこと。
SOCK_STREAMが指定されている場合、 コネクション型通信(TCP)を行うという事を示す。 コネクションレス型通信(UDP)の場合は、SOCK_DGRAMを指定する。
select()は大抵、無限ループの中で、タイムアウトを設定する形で使用する。 select()の第1引数には、最大のディスクリプタの値プラス1を指定する。 よって、最大のディスクリプタの値プラス1を保持しておく必要があ…
sys/types.hのFD_SETSIZEに依存するようである。 大抵は1024。 これはselectというより、fd_set型で表現できる最大のディスクリプタ数を表す。 1024個か・・・。 多いのか少ないのか判断が…
ディスクリプタのゼロビット目は「標準入力」を表す。 よって、クライアント側をselect文でループ化して、標準入力に対するチェックをしておけば、裏でハートビート等の別の通信をしながら、ユーザーからの入力を受け付ける事も可…
accept関数は確立済みコネクションキューの先頭から、接続が完了している次のコネクションを取り出す。確立済みコネクションキューが空の場合、プロセスはスリープ状態におかれる。 ようするに、acceptの前にselectが…
「リスニングソケット」と「接続済みソケット」は別物。 リスニングソケットはsocket関数の戻り値で、サーバ生存期間中存在し続ける。 一方、接続済みソケットは、リスニングソケットに対してコネクションが確立した際に、acc…
関数の戻り値をvoidにしているときは、return文なくてもいいけど、あえて記述する場合は return; のみでよし。return文の引数に何も指定しないところがミソ。
最近のコメント