Привязывает имя к сокету


(PHP 4 >= 4.1.0, PHP 5)

socket_bindПривязывает имя к сокету

Описание

bool socket_bind ( resource $socket , string $address [, int $port = 0 ] )

Привязывает имя, указанное в параметре address, к сокету, описанному в параметре socket. Это должно быть сделано до того, как соединение установлено при помощи функции socket_connect() или socket_listen().

Список параметров

socket

Действующий ресурс сокета, созданный при помощи функции socket_create().

address

Если сокет из семейства AF_INET, то параметр address должен быть IP-адресом в записи, разделённой точками (например, 127.0.0.1).

Если сокет из семейства AF_UNIX, то параметр address - это путь к доменному сокету Unix (например, /tmp/my.sock).

port (Optional)

Параметр port используется только когда имя привязывается к сокету AF_INET, и указывает порт, на котором будут слушаться соединения.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Код ошибки может быть получен при помощи функции socket_last_error(). Этот код может быть передан функции socket_strerror() для получения текстового описания ошибки.

Примеры

Пример #1 Использование функции socket_bind() для установки адреса источника

<?php
// Создаём новый сокет
$sock socket_create(AF_INETSOCK_STREAMSOL_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() может возвращать неверный код ошибки при попытке связать с сокетом неверный адрес, который не принадлежит вашей машине.

Смотрите также