(PHP 4 >= 4.1.0, PHP 5, PHP 7, PHP 8)
socket_bind — Привязывает имя к сокету
Функция привязывает имя, которое указали в параметре address
,
к сокету, который описали в параметре socket
. Привязку имени
требуется сделать до установки соединения функцией socket_connect()
или socket_listen().
socket
Экземпляр класса Socket, который создала функция socket_create().
address
В аргументе address
передают IP-адрес
в 4-точечной нотации наподобие 127.0.0.1
),
если сокет принадлежит семейству AF_INET
— IPv4-адреса сокетов в интернет-домене.
В аргументе address
передают путь сокета
наподобие /tmp/my.sock),
если сокет принадлежит семейству AF_UNIX
— адреса сокетов
в виде имён путей файловой системы в Unix-домене.
port
(Optional)
Параметр port
устанавливают только
при привязке AF_INET
-сокета. Параметр определяет порт,
на котором требуется прослушивать соединения.
Функция возвращает true
, если выполнилась успешно, или false
, если возникла ошибка.
Код ошибки получают функцией socket_last_error(). Код передают в функцию socket_strerror(), чтобы получить текстовое объяснение ошибки.
Версия | Описание |
---|---|
8.0.0 |
Теперь параметр socket ожидает экземпляр класса Socket;
раньше параметр ожидал ресурс (resource).
|
Пример #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().