array ( 0 => 'index.php', 1 => 'PHP Manual', ), 'head' => array ( 0 => 'UTF-8', 1 => 'ru', ), 'this' => array ( 0 => 'function.socket-bind.php', 1 => 'socket_bind', ), 'up' => array ( 0 => 'ref.sockets.php', 1 => 'Функции сокета', ), 'prev' => array ( 0 => 'function.socket-atmark.php', 1 => 'socket_atmark', ), 'next' => array ( 0 => 'function.socket-clear-error.php', 1 => 'socket_clear_error', ), 'alternatives' => array ( ), 'source' => array ( 'lang' => 'ru', 'path' => 'reference/sockets/functions/socket-bind.xml', ), ); $setup["toc"] = $TOC; $setup["toc_deprecated"] = $TOC_DEPRECATED; $setup["parents"] = $PARENTS; manual_setup($setup); ?>
(PHP 4 >= 4.1.0, PHP 5, PHP 7, PHP 8)
socket_bind — Привязывает имя к сокету
Привязывает имя, указанное в параметре address
, к сокету,
описанному в параметре socket
. Это должно быть сделано до того,
как соединение установлено при помощи функции socket_connect()
или socket_listen().
socket
Экземпляр 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() для получения текстового описания ошибки.
Версия | Описание |
---|---|
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().
Замечание:
Примечание по совместимости с Windows 9x/ME: Функция socket_last_error() может возвращать неверный код ошибки при попытке связать с сокетом неверный адрес, который не принадлежит вашей машине.