PHP는 웹 개발에 널리 사용되는 서버 측 스크립팅 언어인 반면, 소켓은 서버 응용 프로그램이나 클라이언트 응용 프로그램에서 데이터를 보내거나 받는 데 사용할 수 있는 범용 인터페이스입니다. PHP는 소켓을 사용하여 네트워크의 TCP/IP 프로토콜을 기반으로 소켓 통신을 수행하여 웹 서버에서 데이터 상호 작용을 실현할 수 있습니다.
PHP는 매우 편리한 소켓 확장을 제공합니다. 이 확장을 통해 소켓 프로그래밍을 쉽게 구현할 수 있습니다. 아래에서는 PHP에서 소켓을 구현하는 방법을 소개하겠습니다.
PHP 5.0.0 버전 이후 소켓 확장은 기본적으로 PHP에 포함되어 있으므로 대부분의 PHP에는 이미 이 확장이 포함되어 있습니다. 그러나 PHP 버전이 너무 오래되었거나 이 확장 기능이 포함되어 있지 않으면 직접 설치해야 합니다. 다음 명령을 통해 Linux에 설치할 수 있습니다.
sudo apt-get install php7.0-sockets
Windows 시스템을 사용하는 경우 PHP 공식 웹사이트에 가서 해당 확장 파일을 다운로드한 후 php.ini 파일에 확장 파일을 추가하세요.
먼저 PHP에서 소켓 연결을 생성하려면, 이 함수를 호출할 때 세 가지 매개변수를 전달해야 합니다:
$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
socket_bind($socket, 0, 8080);
여기서 소켓은 로컬 IP에 바인딩됩니다. 포트 8080의 주소와 포트 번호. 특정 IP 주소에 바인딩하려면 두 번째 매개변수를 해당 IP 주소로 설정할 수 있습니다.
연결 수신socket_listen($socket);연결 요청 수신 대기를 시작하기 전에 소켓의 일부 매개변수를 구성하려면 소켓_set_option 함수를 사용할 수 있습니다. 예:
socket_set_option($socket, SOL_SOCKET, SO_REUSEADDR, 1);
이 예에서는 SO_REUSEADDR 옵션을 1로 설정합니다. 이는 로컬 주소를 재사용할 수 있음을 의미하므로 "주소가 이미 사용 중입니다" 오류를 방지할 수 있습니다.
연결 요청 수신$clientSocket = socket_accept($socket);클라이언트가 연결되면 이 함수는 새 소켓 핸들을 반환합니다. 고객과의 의사소통에 사용됩니다.
$msg = "Hello, Client!"; socket_write($clientSocket, $msg, strlen($msg));
$msg = socket_read($clientSocket, 1024);
socket_read 함수는 클라이언트가 연결을 닫았음을 나타내는 빈 문자열을 반환할 수 있다는 점에 유의해야 합니다.
연결 종료socket_close($socket); socket_close($clientSocket);그중 첫 번째 소켓 핸들은 서버 소켓을 나타내고 두 번째 소켓 핸들은 클라이언트와 설정된 소켓 연결을 나타냅니다.
위 내용은 PHP에서 소켓을 구현하는 방법에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!