connect

(PHP 4 >= 4.0.2)

connect -- ソケット上の接続を初期化する

説明

int connect (int socket, string address [, int protocol])

ソケット記述子socketを用いて接続を初期化し ます。この記述子は、socket()で作成した有効なソ ケット記述子である必要があります。

ソケットの種類がAF_INETの場合、パラメータ address は、4-ドット表記のIPアドレス(例: 127.0.0.1)であり、AF_UNIX の場合はUNIXドメインソケットのパス名です。

パラメータportは、 AF_INETソケットに接続する場合にのみ使用され、 接続するリモートホストのポートを指定します。

成功時にゼロを返し、失敗時に負のエラーコードを返します。このコー ドは、エラーの内容を文字列で取得するために strerror()に渡すことが可能です。

例 1. connect()の例


<?php
error_reporting(E_ALL);

echo "<h2>TCP/IP Connection</h2>\n";

/* WWW サービスのポートを取得 */
$service_port = getservbyname('www', 'tcp');

/* ターゲットホストのIPアドレスを取得 */
$address = gethostbyname('www.php.net');

/* TCP/IPソケットを作成 */
$socket = socket(AF_INET, SOCK_STREAM, 0);
if ($socket < 0) {
    echo "socket() failed: reason: " . strerror($socket) . "\n";
} else {
    "socket() successful: " . strerror($socket) . "\n";
}

echo "Attempting to connect to '$address' on port '$service_port'...";
$result = connect($socket, $address, $service_port);
if ($result < 0) {
    echo "connect() failed.\nReason: ($result) " . strerror($result) . "\n";
} else {
    echo "OK.\n";
}

$in = "HEAD / HTTP/1.0\r\n\r\n";
$out = '';

echo "Sending HTTP HEAD request...";
write($socket, $in, strlen($in));
echo "OK.\n";

echo "Reading response:\n\n";
while (read($socket, $out, 2048)) {
    echo $out;
}

echo "Closing socket...";
close($socket);
echo "OK.\n\n";
?>
      

bind(), listen(), socket(), strerror()も参照下さい。