ソケット (BSD)
accept() は、リモートホストからのコネクション確立要求を受け付ける。以下の引数がある。
sockfd - listen していたソケットの記述子
addr - クライアントのアドレス情報を accept() の中で格納するための sockaddr 構造体へのポインタ
addrlen - addr が指す sockaddr 構造体の大きさを格納する socklen_t へのポインタ。accept() から戻ったとき、実際に格納されたデータ構造のサイズに更新されている。
コネクションが確立された場合、それに対応したソケット記述子を返す。エラーが発生すると -1 を返す。
C99 でのサーバ側のソースコード。ポート番号 7654 で UDP サーバを開く。
bind() は、ソケットとアドレス/ポートを結びつける。
最後の無限ループは recvfrom() を使ってポート番号 7654 からのUDPパケットを受信する。引数は以下の通り。
ソケット
バッファへのポインタ
バッファの大きさ
フラグ(read などの他のソケット受信関数と同じ)
アドレス構造体
アドレス構造体の大きさ
BSDソケットの中核となる関数とデータ構造
数値としてIPアドレスを操作する機能の定義