Socket context options

Socket context options — Socket context option listing


설명

소켓 컨텍스트 옵션은 tcp, httpftp와 같이 소켓을 통해 작동하는 모든 래퍼에 사용할 수 있습니다.


옵션

    bindto
    IP 주소(IPv4 또는 IPv6) 및/또는 PHP가 네트워크에 액세스하는 데 사용할 포트 번호를 지정하는 데 사용됩니다. 구문은 IPv4 주소의 경우 ip:port이고 IPv6 주소의 경우 [ip]:port입니다. IP 또는 포트를 0으로 설정하면 시스템이 IP 및/또는 포트를 선택할 수 있습니다.

    메모: FTP는 정상 동작 중에 2개의 소켓 연결을 생성하므로 이 옵션을 사용하여 포트 번호를 지정할 수 없습니다.

    backlog
    소켓의 청취 큐에서 미해결 연결 수를 제한하는 데 사용됩니다.

    메모: 이것은 stream_socket_server()에만 적용됩니다.

    ipv6_v6only
    IPv4를 IPv6으로 매핑하는 것과 관련된 OS 기본값을 재정의합니다.

    메모: 이는 [::]에 대한 바인딩이 있는 동안 IPv4 주소를 개별적으로 수신하려고 할 때 특히 중요합니다.
    이것은 stream_socket_server()에만 적용됩니다.

    so_reuseport
    별도의 프로세스에서도 동일한 ip:port 쌍에 대한 다중 바인딩을 허용합니다.

    메모: 이것은 stream_socket_server()에만 적용됩니다.

    so_broadcast
    브로드캐스트 주소와 데이터를 주고받을 수 있습니다.

    메모: 이것은 stream_socket_server()에만 적용됩니다.

    tcp_nodelay
    이 옵션을 true로 설정하면 SOL_TCP,NO_DELAY=1이 적절하게 설정되어 TCP Nagle 알고리즘이 비활성화됩니다.

변경 로그

Version Description
7.1.0 Added tcp_nodelay.
7.0.1 Added ipv6_v6only.

Examples

예제 #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);

?>