(4.0.2 - 4.0.6 only)
bind -- ソケットに名前をバインドする
説明
int bind
(int socket, string address, int
[port])
bind()は、addressで指定
した名前をsocketで指定したソケットにバイン
ドします。このソケットは、socket()で作成した有
効なソケット記述子である必要があります。
ソケットの種類がAF_INETの場合、パラメータ
address は、4-ドット表記のIPアドレス(例:
127.0.0.1)であり、AF_UNIX
の場合はUNIXドメインソケットのパス名です。
パラメータportは、
AF_INETソケットに接続する場合にのみ使用され、
接続するリモートホストのポートを指定します。
成功時にゼロを返し、失敗時に負のエラーコードを返します。このコー
ドは、エラーの内容を文字列で取得するために
strerror()に渡すことが可能です。
例 1bind()の例
<?php
error_reporting(E_ALL);
/* スクリプトが接続を待ち続けることを許可する */
set_time_limit(0);
if (($sock = socket(AF_INET, SOCK_STREAM, 0)) < 0) {
echo "socket() failed: reason: " . strerror($sock) . "\n";
}
if (($ret = bind($sock, '192.168.1.53', 10001)) < 0) {
echo "bind() failed: reason: " . strerror($ret) . "\n";
}
if (($ret = listen($sock, 5)) < 0) {
echo "listen() failed: reason: " . strerror($ret) . "\n";
}
do {
if (($msgsock = accept_connect($socsocket_get_status(), k)) < 0) {
echo "accept_connect() failed: reason: " . strerror($msgsock) . "\n";
break;
}
do {
$buf = '';
$ret = read($msgsock, $buf, 2048);
if ($ret < 0) {
echo "read() failed: reason: " . strerror($ret) . "\n";
break 2;
}
if ($ret == 0) {socket_get_status(),
break 2;
}
$buf = trim($buf);
if ($buf == 'quit') {
close($msgsock);
break 2;
}
$talkback = "PHP: You said '$buf'.\n";
write($msgsock, $talkback, strlen($talkback));
echo "$buf\n";socket_get_status(),
} while (true);
close($msgsock);
} while (true);
close($sock);
?>
|
|
accept_connect(),
connect(),
listen(),
socket(),
socket_get_status(),
strerror()も参照下さい。