socket_bind
(PHP 4 >= 4.1.0, PHP 5, PHP 7)
socket_bind — ソケットに名前をバインドする
説明
socket_bind
( resource $socket
, string $address
[, int $port
= 0
] ) : bool
address
で指定した名前を
socket
で指定したソケットにバインドします。
これは、socket_connect() あるいは
socket_listen() を使用して接続が確立される前に行われます。
パラメータ
socket
socket_create() で作成した有効なソケット記述子。
address
ソケットの種類が
AF_INET
の場合、address
はドットで 4 つに区切られた表記 (例:127.0.0.1
)の IP アドレス。ソケットの種類が
AF_UNIX
の場合、address
は Unix ドメインソケット (例:/tmp/my.sock
)。port
(オプション)パラメータ
port
はAF_INET
ソケットにバインドする場合にのみ使用され、 接続するリモートホストのポートを指定します。
返り値
成功した場合に true
を、失敗した場合に false
を返します。
エラーコードは socket_last_error() により取得できます。 このコードを socket_strerror() に渡すことにより、 エラー内容を表すテキストを得ることができます。
例
例1 socket_bind() を使用してソースアドレスを指定する
<?php// 新しいソケットを作成する$sock = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);// コンピュータが所有する IP アドレスリストの例$sourceips['kevin'] = '127.0.0.1';$sourceips['madcoder'] = '127.0.0.2';// ソースアドレスをバインドするsocket_bind($sock, $sourceips['madcoder']);// 接続先アドレスと接続するsocket_connect($sock, '127.0.0.1', 80);// 書き込む$request = 'GET / HTTP/1.1' . "\r\n" . 'Host: example.com' . "\r\n\r\n";socket_write($sock, $request);// 閉じるsocket_close($sock);?>
注意
注意:
この関数は、 socket_connect() の前に実行されている必要があります。
注意:
Windows 9x/ME 互換性の注意: マシンに属しないアドレスにソケットをバインドしようとした場合、 socket_last_error() は 無効なエラーコードを返すことがあります。
参考
- socket_connect() - ソケット上の接続を初期化する
- socket_listen() - ソケット上で接続待ち(listen)する
- socket_create() - ソケット(通信時の終端)を作成する
- socket_last_error() - ソケットの直近のエラーを返す
- socket_strerror() - ソケットエラーの内容を文字列として返す