PHP에서 소켓 프로그래밍은 사용자 정의 서버 프로그램을 구축하는 데 적합한 기본 네트워크 통신 방법입니다. 이 기사에서는 Socket_accept () 함수를 사용하여 클라이언트 연결을 수락하고 Socket_write () 함수를 통해 클라이언트에 응답을 보내는 방법을 소개합니다.
먼저 소켓 자원을 생성하고 고객 요청을 들으려면 지정된 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");
}
바인딩이 성공하면 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";
클라이언트 연결을 수신 한 후 클라이언트 데이터를 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);
}
서버를 종료 해야하는 경우 Socket_close ()를 호출하여 리소스를 해제하십시오.
socket_close($socket);
위의 코드는 다음에 중점을 둔 간단한 PHP 소켓 기반 서버 예제를 보여줍니다.
Socket_create ()를 사용하여 소켓을 만듭니다.
socket_bind ()를 사용하여 IP와 포트를 바인딩합니다.
Socket_Listen ()을 사용하여 청취를 시작하십시오.
Socket_accept ()를 사용하여 클라이언트 연결 대기를 차단합니다.
socket_write ()를 사용하여 클라이언트에 데이터 응답을 보냅니다.
이러한 방식으로 PHP 기본 소켓 프로그래밍을 통해 기본 TCP 서버를 구축하고 클라이언트 연결 및 통신을 유연하게 처리 할 수 있습니다.