라이브러리

[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` 함수는 소켓을 닫는 데 사용됩니다.
  • profile_image
    나우호스팅 @pcs8404 

    호스팅포럼 화이팅!

    댓글목록

    등록된 댓글이 없습니다.

  • 전체 8,985건 / 181 페이지

검색

게시물 검색