>  기사  >  백엔드 개발  >  PHP의 소켓 프로그래밍

PHP의 소켓 프로그래밍

王林
王林원래의
2024-08-29 13:14:071243검색

모든 프로그래밍 언어는 서버와 클라이언트 통신을 구현하는 메커니즘을 제공합니다. 이 메커니즘에 따라 애플리케이션을 사용하면 서버와 클라이언트가 서로 데이터를 교환할 수 있습니다. 다른 프로그래밍 언어와 마찬가지로 PHP도 이 메커니즘을 제공합니다. 소켓 프로그래밍은 서버와 클라이언트 사이의 통신을 용이하게 하기 위해 둘 사이에 연결을 설정해야 하는 응용 프로그램으로 서버와 클라이언트를 갖는 프로그래밍 접근 방식으로 정의할 수 있습니다. PHP의 관점에서는 소켓 프로그래밍 개념을 구현할 수도 있습니다. 이 기사에서는 PHP 프로그래밍 언어를 사용하여 이 소켓 프로그래밍을 구현하는 방법을 알아봅니다.

광고 이 카테고리에서 인기 있는 강좌 프로그래밍 언어 - 전문 분야 | 54 코스 시리즈 | 4가지 모의고사

무료 소프트웨어 개발 과정 시작

웹 개발, 프로그래밍 언어, 소프트웨어 테스팅 등

소켓 클래스 메소드

소켓 클래스 메소드는 소켓 프로그래밍을 구현할 수 있는 특수 함수입니다. 소켓 프로그래밍의 기능을 가져오기 위해 작성해야 하는 프로그램은 미리 정의된 소켓 기능을 사용합니다. 이러한 함수는 소켓 프로그래밍에서 실제 역할을 수행하는 명령문으로 구성됩니다. 다음은 소켓 기능 중 일부입니다.

  • Socket_accept: 이것은 소켓 연결을 수락하는 데 사용되는 매우 일반적인 소켓 함수 중 하나입니다. 이 기능의 주요 역할은 요청이 적중할 때마다 연결을 허용하는 것입니다.
  • Socket_addrinfo_bind: 이 함수는 제공된 정보를 소켓에 추가하는 데 사용됩니다. 수용된 정보는 구현을 용이하게 하기 위해 소켓에 할당되어야 합니다.
  • Socket_clear_error: 이 함수는 소켓에 발생한 오류를 지우는 데 사용됩니다. 게다가 이 함수는 마지막 코드의 오류도 제거합니다.
  • Socket_close: 이름에서 알 수 있듯이 이 함수는 소켓에 속한 리소스를 닫는 데 사용됩니다.
  • Socket_connect: 이 메소드는 소켓 연결을 생성하는 데 사용됩니다. 소켓 프로그래밍에서 프로그램은 연결 설정으로 시작되며 이 기능을 사용하여 수행할 수 있습니다.
  • Socket_create: 이 메소드는 소켓 생성과 관련이 있습니다. 이 방법을 사용하여 생성된 소켓은 연결의 끝점 역할을 합니다.
  • Socket_create_listen: 이 함수는 소켓이 연결을 허용하는 지정된 포트를 열도록 하는 데 사용됩니다. 이름에서 알 수 있듯이 청취를 위해 소켓을 여는 데 도움이 됩니다.
  • Socket_create_pair: 이 방법은 일반적으로 소켓 프로그래밍의 복잡한 부분을 사용해야 하는 애플리케이션에서 사용됩니다. 구별할 수 없는 소켓을 생성하는 데 도움이 되며 이러한 소켓은 배열에 저장됩니다.
  • Socket_get_option: 이 메소드는 소켓에 대한 옵션을 가져오는 데 사용됩니다. 소켓은 애플리케이션에 따라 사용해야 하는 여러 옵션으로 구성됩니다. 이 방법을 사용하면 소켓이 가지고 있는 모든 옵션을 얻을 수 있습니다.
  • Socket_getsockname: 이 메소드는 선택한 소켓의 로컬 영역을 쿼리하는 데 사용되며, 그 결과 호스트/포트 또는 Unix 파일 시스템 경로와 관련된 세부 정보를 가져올 수 있습니다. 어떤 결과가 나오든 전적으로 유형에 따라 다릅니다.

소켓 클라이언트 예시

이 섹션에서는 클라이언트측 소켓 프로그래밍을 구현하는 데 사용되는 코드를 볼 수 있습니다. 아래에 언급된 예에는 소켓 연결을 생성하는 데 사용될 포스트와 호스트 세부 정보가 포함됩니다. 연결이 설정되면 일부 메시지를 교환하고 서버의 응답을 기다립니다.

<?php
$port_number    = 1230;
$IPadress_host    = "127.0.0.1";
$hello_msg= "This is server";
echo "Hitting the server :".$hello_msg;
$socket_creation = socket_create(AF_INET, SOCK_STREAM, 0) or die("Unable to create connection with socket\n");
$server_connect = socket_connect($socket_creation, $IPadress_host , $port_number) or die("Unable to create connection with server\n");
socket_write($socket_creation, $hello_msg, strlen($hello_msg)) or die("Unable to send data to the  server\n");
$server_connect = socket_read ($socket_creation, 1024) or die("Unable to read response from the server\n");
echo "Message from the server :".$server_connect;
socket_close($socket_creation);
?>

위의 예에서 프로그램이 연결을 시도하는 포트 번호는 1230입니다. 호스트의 IP 주소는 로컬호스트의 IP가 됩니다. 누구든지 원격 서버와 상호 작용하려는 경우 서버의 IP 주소를 언급할 수 있습니다. 그런 다음 메시지는 응답 페이지에 표시될 서버로 전송됩니다. 소켓 생성은 나중에 처리됩니다. 이 프로그램에는 die 메소드를 사용하여 오류를 처리하는 적절한 메커니즘이 있습니다. 문제가 있는 경우에는 주사위 방식이 취소되고 그에 따른 메시지가 뜹니다.

Socket Server Example

The example detailed in this section will be having the PHP codes that will be leveraged to implement the socket programming at the server-side. The details of the IP and the port number used in the last example will remain the same in this example as well. This example’s main difference will make the core difference that separates it from the client-side socket programming language. Lets process to understand the PHP code for server-side socket programming.

<?php
$port_number    = 1230;
$IPadress_host    = "127.0.0.1";
set_time_limit(0);
$socket_creation = socket_create(AF_INET, SOCK_STREAM, 0) or die("Unable to create socket\n");$socket_outcome = socket_bind($socket_creation, $IPadress_host , $port_number ) or die("Unable to bind to socket\n");
$socket_outcome = socket_listen($socket_creation, 3) or die("Unable to set up socket listener\n");
$socketAccept = socket_accept($socket_creation) or die("Unable to accept incoming connection\n");
$data = socket_read($socketAccept, 1024) or die("Unable to read input\n");
$data = trim($data);
echo "Client Message : ".$data;
$outcome = strrev($data) . "\n";
socket_write($socketAccept, $outcome, strlen ($outcome)) or die("Unable to  write output\n");
socket_close($socketAccept);
socket_close($socket_creation);
?>

In the above example, the program has been developed to work in the localhost. The IP address mentioned here belongs to the localhost, and the port number can run the TCP and UDP service on that. The initial step is always the creation of the socket, as it is something that will be used throughout the program. Later the socket has been bonded with the specified values, which will help in functioning. The methods used in this program have a predefined meaning that can be used for a specific purpose. Once everything goes well, the program will work accordingly and will close the socket connection eventually.

Conclusion – Socket Programming in PHP

The socket programming language is used to let the application work on the server and the client model. This approach of programming lets us establish the connection between the server and the client so that the exchange of the data could be facilitated. To make the socket programming easy and convenient, PHP has provided predefined methods where all the methods have some unique tasks assigned to them.

위 내용은 PHP의 소켓 프로그래밍의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.