Socket context options
Socket context options — Socket context option listing
설명
소켓 컨텍스트 옵션은 tcp
, http
및 ftp
와 같이 소켓을 통해 작동하는 모든 래퍼에 사용할 수 있습니다.
옵션
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);
?>