Sockets socket_bind

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

socket_bind — 소켓에 이름을 바인드


설명

socket_bind(Socket $socket, string $address, int $port = 0): bool

address에 주어진 이름을 socket이 설명하는 소켓에 바인드합니다. 이것은 socket_connect() 또는 socket_listen()을 사용하여 연결을 설정하기 전에 수행되어야 합니다.


매개변수

socket
socket_create()로 생성된 Socket 인스턴스.
address
소켓이 AF_INET 계열인 경우 address는 점으로 구분된 쿼드 표기법(예: 127.0.0.1)의 IP입니다.

소켓이 AF_UNIX 계열인 경우 address는 Unix 도메인 소켓의 경로입니다(예: /tmp/my.sock).

port (Optional)
port 매개변수는 AF_INET 소켓을 바인딩할 때만 사용되며 연결을 수신할 포트를 지정합니다.

반환 값

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

오류 코드는 socket_last_error()로 검색할 수 있습니다. 이 코드는 오류에 대한 텍스트 설명을 얻기 위해 socket_strerror()에 전달될 수 있습니다.


변경 로그

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

Examples

예제 #1 socket_bind()를 사용하여 소스 주소 설정

                  
<?php
// Create a new socket
$sock = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);

// An example list of IP addresses owned by the computer
$sourceips['kevin']    = '127.0.0.1';
$sourceips['madcoder'] = '127.0.0.2';

// Bind the source address
socket_bind($sock, $sourceips['madcoder']);

// Connect to destination address
socket_connect($sock, '127.0.0.1', 80);

// Write
$request = 'GET / HTTP/1.1' . "\r\n" .
           'Host: example.com' . "\r\n\r\n";
socket_write($sock, $request);

// Close
socket_close($sock);

?>
                  
                

메모

메모: 이 함수는 socket_connect() 전에 소켓에서 사용해야 합니다.

메모: Windows 9x/ME 호환성 참고: socket_last_error()는 소켓을 컴퓨터에 속하지 않은 잘못된 주소에 바인딩하려고 하면 잘못된 오류 코드를 반환할 수 있습니다.


기타