5部 関数リファレンス

bind

bind SOCKET,SOCK_ADDR



ソケットSOCKETに、IPアドレスとポート番号をパックしたソケットSOCK_ADDRを割り当てます。成功時には"真"を返し、失敗時には"偽"を返します。

bindの使い方

SOCKETsocket
を使って事前に用意しておきます。
例えばソケット S にポート 9999 番を割り当てるには、下記のようにします。

bind(S, pack_sockaddr_in(9999, INADDR_ANY));

OS にポート番号を選ばせることもできます。

bind(S, pack_sockaddr_in(0, INADDR_ANY));

bindpack_sockaddr_inの返却値 (IPアドレスとポート番号をパックしたもの) を渡すのは、同じマシンにIPアドレスが複数割り当てられている場合に、どちらのIPアドレスのポートを使うのかを選択できるようになっているためです。通常はIPアドレスとしてINADDR_ANYを指定しておけば問題ありません。

IPアドレスを指定

$inet_addr = inet_aton("192.168.0.10");
bind(SOCKET, sockaddr_in($port, $inet_addr));

関連記事