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.

Version Description 7.1.0 Added tcp_nodelay. 7.0.1 Added 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);

?>