Socket context options
Оновлено: 11.05.2023
Параметри контексту сокета - Список параметрів контексту сокета
Параметри контексту сокета доступні для всіх обгорток, які працюють через сокети, такі як tcp, http і ftp.
bindto Використовується для вказівки IP-адреси (IPv4 або IPv6) і/або номера порту, який PHP буде використовувати для доступу до мережі. Синтаксис: ip:порт для IPv4-адрес і [ip]:порт для IPv6-адрес. Якщо встановити IP або порт в 0, система сама вибере IP і/або порт. Примітка: Оскільки під час звичайної роботи FTP створює два з'єднання сокетів, номер порту не можна вказати за допомогою цього параметра. відставання Використовується для обмеження кількості незавершених з'єднань у черзі очікування сокета. Примітка: Це стосується лише stream_socket_server(). ipv6_v6only Перевизначає налаштування ОС за замовчуванням щодо перетворення IPv4 у IPv6. Примітка: Це важливо, зокрема, при спробі прослуховувати IPv4-адреси окремо, коли існує прив'язка до [::]. Це стосується лише stream_socket_server(). so_reuseport Дозволяє декілька прив'язок до однієї пари ip:порт, навіть з різних процесів. Примітка: Це стосується лише stream_socket_server(). so_broadcast Дозволяє надсилати та отримувати дані на/з широкомовних адрес. Примітка: Це стосується лише stream_socket_server(). tcp_nodelay Якщо встановити цей параметр у true, SOL_TCP,NO_DELAY=1 буде встановлено відповідним чином, таким чином вимикаючи алгоритм TCP Nagle.
Використовується для вказівки IP-адреси (IPv4 або IPv6) і/або номера порту, який PHP буде використовувати для доступу до мережі. Синтаксис: ip:порт для IPv4-адрес і [ip]:порт для IPv6-адрес. Якщо встановити IP або порт в 0, система сама вибере IP і/або порт.
Зауважте:
Оскільки під час звичайної роботи FTP створює два з'єднання з сокетом, номер порту не можна вказати за допомогою цього параметра.
Використовується для обмеження кількості незавершених з'єднань у черзі на прослуховування сокета.
Зауважте:
Це стосується лише stream_socket_server().
Перевизначає налаштування ОС за замовчуванням щодо перетворення IPv4 у IPv6.
Зауважте:
Це важливо, зокрема, при спробі прослуховувати IPv4-адреси окремо, коли існує прив'язка до [::].
Це стосується лише stream_socket_server().
Дозволяє декілька прив'язок до однієї пари ip:порт, навіть з різних процесів.
Зауважте:
Це стосується лише stream_socket_server().
Дозволяє надсилати та отримувати дані на/з широкомовних адрес.
Зауважте:
Це стосується лише stream_socket_server().
Якщо встановити цей параметр у true, SOL_TCP,NO_DELAY=1 буде встановлено відповідним чином, таким чином вимикаючи алгоритм TCP Nagle.
tcp_nodelay
.
ipv6_v6only
.
Приклад #1 Базовий приклад використання bindto
<?php
// connect to the internet using the '192.168.0.100' IP
$opts = array(
'socket' => array(
'bindto' => '192.168.0.100:0',
),
);
// connect to the internet using the '192.168.0.100' IP and port '7000'
$opts = array(
'socket' => array(
'bindto' => '192.168.0.100:7000',
),
);
// connect to the internet using the '2001:db8::1' IPv6 address
// and port '7000'
$opts = array(
'socket' => array(
'bindto' => '[2001:db8::1]:7000',
),
);
// connect to the internet using port '7000'
$opts = array(
'socket' => array(
'bindto' => '0:7000',
),
);
// create the context...
$context = stream_context_create($opts);
// ...and use it to fetch the data
echo file_get_contents('http://www.example.com', false, $context);
?>