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_SOCKET
의level
매개변수가 사용됩니다. 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;
}
?>
기타
- socket_create() - 소켓 생성(통신을 위한 끝점)
- socket_bind() - 소켓에 이름을 바인드
- socket_strerror() - 소켓 오류를 설명하는 문자열 반환
- socket_last_error() - 소켓의 마지막 오류를 반환합니다.
- socket_get_option() - 소켓에 대한 소켓 옵션을 가져옵니다.