Introduction à la programmation de socket en PHP
Tous les langages de programmation fournissent le mécanisme pour implémenter 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 par socket peut être définie comme l'approche de la programmation qui a le serveur et le client comme application où une connexion doit être établie entre les deux afin de faciliter la communication entre eux. En termes de PHP, il nous permet également d'implémenter le concept de programmation socket. Dans cet article, nous apprendrons comment implémenter cette programmation de socket à l'aide du langage de programmation PHP.
Méthodes de classe de 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 pour apporter les fonctionnalités de la programmation socket utilise les fonctions socket prédéfinies. Ces fonctions sont constituées des instructions qui remplissent le rôle réel dans la programmation des sockets. Voici quelques-unes des fonctions de socket.
- Socket_accept: c'est l'une des fonctions de socket très courantes qui est utilisée pour accepter une connexion sur un socket. Le rôle principal de cette fonction est de laisser la connexion acceptée à chaque fois qu'une requête arrive.
- Socket_addrinfo_bind: Cette fonction est utilisée pour ajouter les informations fournies au socket. Les informations acceptées doivent être affectées au 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. Dans la programmation des sockets, le programme commence par l'établissement de la connexion qui peut être effectuée en utilisant cette fonction.
- Socket_create: Cette méthode concerne la création du socket. Le socket créé à l'aide de cette méthode fonctionne comme point de terminaison de la connexion.
- Socket_create_listen: Cette fonction est utilisée pour ouvrir le socket sur le port spécifié qui accepte la connexion. Comme son nom l'indique, cela aide à ouvrir le socket pour l'écoute.
- Socket_create_pair: Cette méthode est généralement utilisée dans l'application qui doit utiliser la partie complexe de la programmation de socket. Il aide à la création des prises indiscernables et celles-ci sont stockées dans la baie.
- 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 conformément à l'application. En utilisant cette méthode, nous pouvons obtenir toutes les options d'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 / port ou au chemin du système de fichiers Unix. Quel que soit le résultat obtenu, il dépend totalement du type.
Exemple de client de socket
Dans cette section, nous verrons le code qui sera utilisé pour implémenter la programmation de 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 certains 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 essaie 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é dans 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 a mal tourné dans ce cas, la méthode die est révoquée et le message donné apparaît.
Exemple de serveur de socket
L'exemple détaillé dans cette section aura les codes PHP qui seront exploités pour implémenter la programmation de socket côté serveur. Les détails de l'adresse IP et du numéro de port utilisés dans le dernier exemple resteront également les mêmes dans cet exemple. La principale différence dans cet exemple sera la principale différence qui le sépare du langage de programmation de socket côté client. Permet au processus de comprendre le code PHP pour la programmation de socket côté serveur.
<_?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);
?>
Dans l'exemple ci-dessus, le programme a été développé pour fonctionner dans l'hôte local. L'adresse IP mentionnée ici appartient à l'hôte local et le numéro de port peut exécuter le service TCP et UDP sur celui-ci. L'étape initiale est toujours la création du socket car c'est quelque chose qui sera utilisé tout au long du programme. Plus tard, le socket a été lié avec les valeurs spécifiées qui aideront au fonctionnement. Les méthodes utilisées dans ce programme ont la signification prédéfinie qui peut être utilisée dans un but spécifique. Une fois que tout va bien, le programme fonctionnera en conséquence et fermera éventuellement la connexion socket.
Conclusion - Programmation des sockets en PHP
Le langage de programmation socket est utilisé pour laisser l'application fonctionner sur le serveur et le modèle client. Cette approche de programmation nous permet d'établir la connexion entre le serveur et le client afin que l'échange des données puisse être facilité. Pour rendre la programmation de socket facile et pratique, PHP a fourni les méthodes prédéfinies où toutes les méthodes ont des tâches uniques qui leur sont assignées.
Articles recommandés
Ceci est un guide de programmation de socket en PHP. Nous discutons ici des méthodes qui nous permettent d'implémenter la programmation de socket et comment elle permet au serveur et au client d'échanger des données entre eux. Vous pouvez également consulter nos autres articles connexes pour en savoir plus -
- Introduction à l'encapsulation en PHP
- Constructeur en PHP | Types de constructeur
- Qu'est-ce qui est prioritaire en PHP?
- PHP Magic Constants
- Fonction récursive PHP
- Exemples de fonctions de chaîne PHP
- Guide de programmation de socket en Java