라이브러리

[PHP] stream_socket_server - 인터넷 또는 Unix 도메인 서버 소켓 생성




PHP Stream Socket Server

PHP Stream Socket Server는 TCP/IP 소켓을 사용하여 클라이언트와 통신하는 데 사용되는 PHP 함수입니다. 이 함수는 서버를 생성하고 클라이언트와 통신을 시작하는 데 사용됩니다.

Stream Socket Server 함수

`stream_socket_server()` 함수는 TCP/IP 소켓을 사용하여 서버를 생성하는 데 사용됩니다. 이 함수는 다음과 같은 형식을 가집니다.

#hostingforum.kr
php

stream_socket_server($local_socket, $errno, $errstr, $flags, $context)



- `$local_socket`: 서버를 생성할 소켓의 이름입니다.
- `$errno`: 오류 번호입니다.
- `$errstr`: 오류 메시지입니다.
- `$flags`: 옵션입니다. (예: `STREAM_SERVER_BIND`, `STREAM_SERVER_LISTEN`)
- `$context`: 컨텍스트입니다.

예제: Stream Socket Server

다음 예제는 Stream Socket Server를 사용하여 클라이언트와 통신하는 방법을 보여줍니다.

#hostingforum.kr
php

<?php



// 서버를 생성할 소켓의 이름

$server = stream_socket_server('tcp://0.0.0.0:8080', $errno, $errstr);



if (!$server) {

    echo "Error: $errstr ($errno)
";

} else {

    echo "Server started on port 8080
";



    // 클라이언트와 통신을 시작

    while (true) {

        $client = stream_socket_accept($server);



        if (!$client) {

            echo "Error: Unable to accept client
";

            continue;

        }



        echo "Client connected
";



        // 클라이언트와 통신

        while (true) {

            $data = fread($client, 1024);



            if ($data === false) {

                echo "Error: Unable to read from client
";

                break;

            }



            echo "Received from client: $data
";



            // 클라이언트에게 응답

            fwrite($client, "Hello from server!
");



            if (feof($client)) {

                break;

            }

        }



        // 클라이언트와 통신을 종료

        fclose($client);

    }



    // 서버를 종료

    fclose($server);

}



?>



이 예제에서는 TCP/IP 소켓을 사용하여 서버를 생성하고 클라이언트와 통신을 시작합니다. 클라이언트와 통신을 시작하면 클라이언트가 서버에게 데이터를 보낼 때마다 서버가 클라이언트에게 응답합니다. 클라이언트가 서버와 통신을 종료하면 서버도 클라이언트와 통신을 종료합니다.

예제: Stream Socket Client

다음 예제는 Stream Socket Client를 사용하여 서버와 통신하는 방법을 보여줍니다.

#hostingforum.kr
php

<?php



// 서버와 통신할 소켓의 이름

$client = stream_socket_client('tcp://localhost:8080', $errno, $errstr);



if (!$client) {

    echo "Error: $errstr ($errno)
";

} else {

    echo "Connected to server on port 8080
";



    // 서버에게 데이터를 보내기

    fwrite($client, "Hello from client!
");



    // 서버에게 응답을 받기

    while (true) {

        $data = fread($client, 1024);



        if ($data === false) {

            echo "Error: Unable to read from server
";

            break;

        }



        echo "Received from server: $data
";



        if (feof($client)) {

            break;

        }

    }



    // 서버와 통신을 종료

    fclose($client);

}



?>



이 예제에서는 TCP/IP 소켓을 사용하여 서버와 통신하는 방법을 보여줍니다. 클라이언트는 서버에게 데이터를 보낼 때마다 서버가 클라이언트에게 응답합니다. 클라이언트가 서버와 통신을 종료하면 서버도 클라이언트와 통신을 종료합니다.
  • profile_image
    나우호스팅 @pcs8404 

    호스팅포럼 화이팅!

    댓글목록

    등록된 댓글이 없습니다.

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

검색

게시물 검색