라이브러리
[PHP] socket_create - 소켓(통신을 위한 엔드포인트) 생성
PHP Socket Programming
PHP는 소켓 프로그래밍을 통해 네트워크 소켓을 생성하고 통신할 수 있습니다. 소켓은 네트워크 프로토콜을 통해 데이터를 전달하는 소프트웨어 구성 요소입니다. PHP의 `socket_create` 함수를 사용하여 소켓을 생성할 수 있습니다.
socket_create 함수
`socket_create` 함수는 소켓을 생성하는 데 사용됩니다. 이 함수는 두 개의 매개 변수를 받습니다.
- `domain`: 소켓의 도메인 유형을 지정합니다. 일반적으로 `AF_INET` (IPv4) 또는 `AF_INET6` (IPv6)을 사용합니다.
- `type`: 소켓의 유형을 지정합니다. 일반적으로 `SOCK_STREAM` (TCP) 또는 `SOCK_DGRAM` (UDP)을 사용합니다.
예제
다음 예제는 `socket_create` 함수를 사용하여 TCP 소켓을 생성하는 방법을 보여줍니다.
#hostingforum.kr
php
<?php
// 소켓 도메인과 유형을 지정합니다.
$domain = AF_INET;
$type = SOCK_STREAM;
// 소켓을 생성합니다.
$sock = socket_create($domain, $type, SOL_TCP);
// 소켓이 생성되었는지 확인합니다.
if ($sock === false) {
echo "소켓 생성 실패: " . socket_strerror(socket_last_error()) . "
";
exit;
}
// 소켓을 사용할 수 있도록 설정합니다.
socket_set_option($sock, SOL_SOCKET, SO_REUSEADDR, 1);
// 소켓에 주소와 포트를 할당합니다.
$address = '127.0.0.1';
$port = 8080;
socket_bind($sock, $address, $port);
// 소켓을.listen() 모드에 설정합니다.
socket_listen($sock);
// 클라이언트 연결을 기다립니다.
echo "서버가 시작되었습니다. 클라이언트 연결을 기다립니다...
";
$client = socket_accept($sock);
// 클라이언트와 통신합니다.
echo "클라이언트 연결되었습니다.
";
while (true) {
$data = socket_read($client, 1024);
if ($data === false) {
break;
}
echo "클라이언트 메시지: $data
";
$response = "서버 메시지: " . date("Y-m-d H:i:s");
socket_write($client, $response);
}
// 소켓을 닫습니다.
socket_close($sock);
?>
이 예제는 TCP 소켓을 생성하고 클라이언트와 통신하는 방법을 보여줍니다. 클라이언트가 메시지를 보내면 서버가 메시지를 받고 응답을 보냅니다.
참고
- `AF_INET`과 `AF_INET6`은 IPv4와 IPv6을 나타냅니다.
- `SOCK_STREAM`과 `SOCK_DGRAM`은 TCP와 UDP를 나타냅니다.
- `SOL_TCP`은 TCP 소켓을 나타냅니다.
- `socket_set_option` 함수는 소켓 옵션을 설정하는 데 사용됩니다.
- `socket_bind` 함수는 소켓에 주소와 포트를 할당하는 데 사용됩니다.
- `socket_listen` 함수는 소켓을.listen() 모드에 설정하는 데 사용됩니다.
- `socket_accept` 함수는 클라이언트 연결을 기다리는 데 사용됩니다.
- `socket_read` 함수는 클라이언트 메시지를 읽는 데 사용됩니다.
- `socket_write` 함수는 서버 메시지를 보내는 데 사용됩니다.
- `socket_close` 함수는 소켓을 닫는 데 사용됩니다.
-
- 나우호스팅 @pcs8404
-
호스팅포럼 화이팅!
댓글목록
등록된 댓글이 없습니다.