Sockets socket_set_option

(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)

socket_set_option — 소켓에 대한 소켓 옵션 설정


설명

socket_set_option(
    Socket $socket,
    int $level,
    int $option,
    array|string|int $value
): bool
                

socket_set_option() 함수는 지정된 프로토콜 level에서 option 매개변수에 의해 지정된 옵션을 socket에 대한 value 매개변수가 가리키는 값으로 설정합니다.


매개변수

socket
socket_create() 또는 socket_accept()로 생성된 Socket 인스턴스.
level
level 매개변수는 옵션이 있는 프로토콜 수준을 지정합니다. 예를 들어 소켓 수준에서 옵션을 검색하려면 SOL_SOCKETlevel 매개변수가 사용됩니다. TCP와 같은 다른 수준은 해당 수준의 프로토콜 번호를 지정하여 사용할 수 있습니다. 프로토콜 번호는 getprotobyname() 함수를 사용하여 찾을 수 있습니다.
option
사용 가능한 소켓 옵션은 socket_get_option() 함수의 옵션과 동일합니다.
value
옵션 값입니다.

반환 값

성공하면 true를, 실패하면 false를 반환합니다.


변경 로그

버전 설명
8.0.0 socket은 이제 Socket 인스턴스입니다. 이전에는 리소스였습니다.

Examples

예제 #1 socket_set_option() 예제

                  
<?php
$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);

if (!is_resource($socket)) {
    echo 'Unable to create socket: '. socket_strerror(socket_last_error()) . PHP_EOL;
}

if (!socket_set_option($socket, SOL_SOCKET, SO_REUSEADDR, 1)) {
    echo 'Unable to set option on socket: '. socket_strerror(socket_last_error()) . PHP_EOL;
}

if (!socket_bind($socket, '127.0.0.1', 1223)) {
    echo 'Unable to bind socket: '. socket_strerror(socket_last_error()) . PHP_EOL;
}

$rval = socket_get_option($socket, SOL_SOCKET, SO_REUSEADDR);

if ($rval === false) {
    echo 'Unable to get socket option: '. socket_strerror(socket_last_error()) . PHP_EOL;
} else if ($rval !== 0) {
    echo 'SO_REUSEADDR is set on socket !' . PHP_EOL;
}
?>
                  
                

기타