현재 위치: > 최신 기사 목록> socket_accept () + socket_write () : 클라이언트에 응답을 보냅니다

socket_accept () + socket_write () : 클라이언트에 응답을 보냅니다

M66 2025-05-20

PHP에서 소켓 프로그래밍은 사용자 정의 서버 프로그램을 구축하는 데 적합한 기본 네트워크 통신 방법입니다. 이 기사에서는 Socket_accept () 함수를 사용하여 클라이언트 연결을 수락하고 Socket_write () 함수를 통해 클라이언트에 응답을 보내는 방법을 소개합니다.

1. 소켓을 만들고 포트를 바인딩합니다

먼저 소켓 자원을 생성하고 고객 요청을 들으려면 지정된 IP 주소 및 포트에 바인딩해야합니다.

 <?php
// aTCP socket
$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
if ($socket === false) {
    die("socket_create() 실패하다: " . socket_strerror(socket_last_error()) . "\n");
}

// 묶다IP그리고 포트,假设묶다本地IP그리고 포트8080
$bind = socket_bind($socket, "0.0.0.0", 8080);
if ($bind === false) {
    die("socket_bind() 실패하다: " . socket_strerror(socket_last_error($socket)) . "\n");
}

2. 연결을 듣고 수락하십시오

바인딩이 성공하면 Socket_Listen ()을 호출하여 청취를 시작한 다음 Socket_accept ()를 사용하여 클라이언트가 연결할 때까지 기다립니다.

 // 모니터링을 시작하십시오,가장 허용됩니다5연결을 위해 줄을 서십시오
socket_listen($socket, 5);
echo "서버 시작,클라이언트 연결을 기다리고 있습니다...\n";

while (true) {
    // 阻塞클라이언트 연결을 기다리고 있습니다
    $clientSocket = socket_accept($socket);
    if ($clientSocket === false) {
        echo "socket_accept() 실패하다: " . socket_strerror(socket_last_error($socket)) . "\n";
        continue;
    }

    echo "클라이언트가 연결되어 있습니다\n";

3. 클라이언트 요청을 읽고 응답을 보내십시오

클라이언트 연결을 수신 한 후 클라이언트 데이터를 Socket_read () 를 통해 읽고 socket_write ()를 사용하여 클라이언트에 응답을 보낼 수 있습니다. 예를 들어 간단한 환영 메시지를 보내십시오.

     // 클라이언트 데이터를 읽습니다,최대 읽기1024바이트
    $input = socket_read($clientSocket, 1024);
    echo "클라이언트 메시지를 받았습니다: $input\n";

    // 응답 데이터를 보냅니다
    $response = "방문에 오신 것을 환영합니다m66.net섬기는 사람!\n";
    socket_write($clientSocket, $response, strlen($response));

    // 클라이언트 연결을 닫습니다
    socket_close($clientSocket);
}

4. 서버 소켓을 닫습니다

서버를 종료 해야하는 경우 Socket_close ()를 호출하여 리소스를 해제하십시오.

 socket_close($socket);

요약

위의 코드는 다음에 중점을 둔 간단한 PHP 소켓 기반 서버 예제를 보여줍니다.

  • Socket_create ()를 사용하여 소켓을 만듭니다.

  • socket_bind ()를 사용하여 IP와 포트를 바인딩합니다.

  • Socket_Listen ()을 사용하여 청취를 시작하십시오.

  • Socket_accept ()를 사용하여 클라이언트 연결 대기를 차단합니다.

  • socket_write ()를 사용하여 클라이언트에 데이터 응답을 보냅니다.

이러한 방식으로 PHP 기본 소켓 프로그래밍을 통해 기본 TCP 서버를 구축하고 클라이언트 연결 및 통신을 유연하게 처리 할 수 ​​있습니다.