PHP 프로그래밍에서 Stream_Socket_Server 함수는 스트림 기반 서버 소켓을 만드는 강력한 도구입니다. 이를 통해 프로그램은 네트워크 포트를 듣고 클라이언트가 연결할 때까지 기다리며 해당 연결을 처리 할 수 있습니다. SOCK_CREATE 및 SOCK_BIND 와 같은 기존 기능과 비교하여 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 서버를 만듭니다
사용자 정의 네트워크 프로토콜 서버를 구현하십시오
소켓 통신을위한 백엔드 서비스로