Maison  >  Article  >  développement back-end  >  Programmation de sockets en PHP

Programmation de sockets en PHP

王林
王林original
2024-08-29 13:14:071245parcourir

Tous les langages de programmation fournissent le mécanisme permettant de mettre en œuvre la communication serveur et client. Selon ce mécanisme, l'application permet au serveur et au client d'échanger des données entre eux. Semblable aux autres langages de programmation, PHP nous fournit également ce mécanisme. La programmation socket peut être définie comme l'approche de programmation qui considère le serveur et le client comme application où une connexion doit être établie entre les deux pour faciliter la communication entre eux. En termes de PHP, cela nous permet également d'implémenter le concept de programmation socket. Dans cet article, nous apprendrons comment implémenter cette programmation socket à l'aide du langage de programmation PHP.

PUBLICITÉ Cours populaire dans cette catégorie LANGUAGES DE PROGRAMMATION - Spécialisation | 54 séries de cours | 4 tests simulés

Commencez votre cours de développement de logiciels libres

Développement Web, langages de programmation, tests de logiciels et autres

Méthodes de classe Socket

Les méthodes de classe socket sont les fonctions spéciales qui nous permettent d'implémenter la programmation socket. Le programme qui doit être écrit afin d'apporter les fonctionnalités de programmation socket utilise les fonctions socket prédéfinies. Ces fonctions sont constituées des instructions qui jouent le rôle réel dans la programmation des sockets. Vous trouverez ci-dessous quelques-unes des fonctions du socket.

  • Socket_accept : C'est l'une des fonctions de socket les plus courantes utilisées pour accepter une connexion socket. Le rôle principal de cette fonction est de laisser la connexion acceptée chaque fois qu'une demande arrive.
  • Socket_addrinfo_bind : Cette fonction est utilisée pour ajouter les informations fournies au socket. Les informations acceptées doivent être attribuées à la socket pour faciliter sa mise en œuvre.
  • Socket_clear_error : Cette fonction est utilisée pour effacer l'erreur qui se trouve sur le socket. En plus de cela, cette fonction efface également l'erreur sur le dernier code.
  • Socket_close : Comme son nom l'indique, cette fonction est utilisée pour fermer la ressource qui appartient au socket.
  • Socket_connect : Cette méthode est utilisée pour créer une connexion socket. En programmation socket, le programme commence par l'établissement de la connexion, qui peut se faire grâce à cette fonction.
  • Socket_create : Cette méthode concerne la création du socket. Le socket créé à l'aide de cette méthode fonctionne comme le point final de la connexion.
  • Socket_create_listen : Cette fonction est utilisée pour que le socket ouvre le port spécifié qui accepte la connexion. Comme son nom l'indique, cela aide à ouvrir la prise pour écouter.
  • Socket_create_pair : Cette méthode est généralement utilisée dans l'application qui doit utiliser la partie complexe de la programmation des sockets. Cela aide à la création de sockets indiscernables, et celles-ci sont stockées dans le tableau.
  • Socket_get_option : Cette méthode est utilisée pour obtenir les options du socket. Un socket est composé de plusieurs options qui doivent être utilisées en fonction de l'application. En utilisant cette méthode, nous pouvons obtenir toutes les options dont dispose un socket.
  • Socket_getsockname : Cette méthode est utilisée pour interroger la région locale du socket sélectionné et, en retour, elle peut obtenir les détails liés à l'hôte/au port ou au chemin du système de fichiers Unix. Quel que soit le résultat obtenu, cela dépend totalement du type.

Exemple de client de socket

Cette section verra le code qui sera utilisé pour implémenter la programmation du socket côté client. L'exemple mentionné ci-dessous aura la publication et les détails de l'hôte qui seront utilisés pour créer la connexion socket. Une fois la connexion établie, il échange une partie des messages et attend une réponse du serveur.

<?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);
?>

Dans l'exemple ci-dessus, le numéro de port est 1230 dans lequel le programme tente de se connecter. L’adresse IP de l’hôte sera l’adresse IP de l’hôte local. Si quelqu’un souhaite interagir avec le serveur distant, il peut mentionner l’adresse IP du serveur. Ensuite, le message sera envoyé au serveur qui sera affiché sur la page de réponse. La création du socket sera traitée par la suite. Dans ce programme, il existe un mécanisme approprié pour gérer l'erreur en utilisant la méthode die. Si quelque chose ne va pas, dans ce cas, la méthode die est révoquée et le message qui y apparaît apparaît.

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.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Article précédent:Nombre Armstrong en PHPArticle suivant:Nombre Armstrong en PHP