현재 위치: > 최신 기사 목록> PHP에서 Stream_Socket_Server 함수의 기본 사용에 대한 자세한 설명

PHP에서 Stream_Socket_Server 함수의 기본 사용에 대한 자세한 설명

gitbox 2025-06-07

PHP 프로그래밍에서 Stream_Socket_Server 함수는 스트림 기반 서버 소켓을 만드는 강력한 도구입니다. 이를 통해 프로그램은 네트워크 포트를 듣고 클라이언트가 연결할 때까지 기다리며 해당 연결을 처리 할 수 ​​있습니다. SOCK_CREATESOCK_BIND 와 같은 기존 기능과 비교하여 Stream_Socket_Server는 더 높은 수준의 캡슐화를 제공하여 네트워크 서비스의 구성 프로세스를 단순화합니다.

stream_socket_server 란 무엇입니까?

stream_socket_server 는 PHP의 내장 기능으로 서버 소켓을 생성하고 지정된 주소 및 포트에 대해 리터닝합니다. 클라이언트 연결을 수락하는 데 사용할 수있는 스트림 리소스를 반환합니다. 이 기능은 TCP, UDP 및 UNIX 도메인 소켓을 포함한 다양한 프로토콜을 지원합니다.

기본 구문

 $server = stream_socket_server("tcp://gitbox.net:8080", $errno, $errstr);
if (!$server) {
    echo "서버를 만들 수 없습니다: $errstr ($errno)\n";
} else {
    echo "서버 생성이 성공적으로,항구를 듣습니다8080\n";
}

매개 변수 설명

  • 주소 매개 변수 : 일반적으로 프로토콜 유형 (예 : TCP, UDP)과 다음과 같은 IP 주소 및 포트 번호의 조합. 예를 들어, tcp : //gitbox.net : 8080은 TCP 프로토콜이 gitbox.net 호스트의 포트 8080에 리린 것을 의미합니다.

  • 오류 번호 매개 변수 : 변수를 전달하여 오류 코드를 캡처합니다.

  • 오류 문자열 매개 변수 : 오류 정보를 캡처하기 위해 변수로 전달됩니다.

기본 사용 예제

다음 예제는 기본 포트 8080을 듣고 클라이언트 연결을 수신하고 데이터를 읽고 응답을 반환하는 간단한 TCP 서버를 보여줍니다.

 <?php
$address = "tcp://gitbox.net:8080";
$server = stream_socket_server($address, $errno, $errstr);

if (!$server) {
    die("서버 시작이 실패했습니다: $errstr ($errno)\n");
}

echo "서버가 시작되었습니다,감시 장치 $address\n";

while ($conn = stream_socket_accept($server)) {
    $request = fread($conn, 1024);
    echo "요청을 받았습니다: $request\n";

    $response = "HTTP/1.1 200 OK\r\nContent-Type: text/plain\r\n\r\nHello from PHP server!";
    fwrite($conn, $response);
    fclose($conn);
}

fclose($server);
?>

설명

  • Stream_Socket_Accept를 사용하여 클라이언트 연결 대기 대기를 블록하십시오.

  • 연결이 있으면 클라이언트 데이터를 읽고 간단한 처리 후에 응답하십시오.

  • 서버는 지속적으로 실행되고 여러 요청을 처리 할 수 ​​있습니다.

해당 시나리오

  • 간단한 HTTP 서버를 만듭니다

  • 사용자 정의 네트워크 프로토콜 서버를 구현하십시오

  • 소켓 통신을위한 백엔드 서비스로