La programmation PHPSocket démarre, lit le début de la programmation PHPSocket, commençons par un exemple simple --- un service TCP qui reçoit une chaîne d'entrée, traite et renvoie cette chaîne au client. Voici le code approprié : code PHP : ?/Définir quelques variables de base $host. LINKhref"http://www.php100.com//statics/
Commençons par un exemple simple--- un service TCP qui reçoit la chaîne d'entrée, les processus et les renvois de cette chaîne au client.
Code PHP:
Définir quelques variables de base
$host="192.168.1.99";
$port=en 1234, états-unis saistil;
Définir un délai d'arrêt
set-time-limite(0 (en));
Créer une prise
$socket=socket-créer(AF-inET,SOCK-STREAM (en),0 (en)) ou mourir (« Je ne peux pas créer
socket'n");
Fixation de la prise au port
$result=docket-bind($socket,$host,$port) ou mourir (« Je ne peux pas lier à
socket'n");
Commencer à écouter des liens
$result=socket-écouter($socket,3e) ou mourir ("Impossible de mettre en place la prise
listener'n");
accepter les connexions entrantes
Une autre prise pour gérer les communications.
$spawn=socket-accepter($socket) ou mourir (« Je ne peux pas accepter les
connexion");
Obtenir l'avis du client
$input=socket-lire($spawn,en 1024, états-unis) ou mourir ("Impossible de lire l'entrée");
Vider la chaîne d'entrée
$input=couper légèrement($input);
Traiter les résultats d'entrée et de retour des clients
$output=strrev strrev($input) ."""""""""""""";
socket-écrire($spawn,$output,Strlen($output() ou mourir (ou mourir)"Impossible d'écrire
"sortie");
Fermer les prises
socket-close($spawn);
socket-close($socket);
??Voici une description détaillée de chacune de ses étapes :
1. La première étape consiste à établir deux variables pour contenir l'adresse IP et le port du serveur que la prise s'exécute. Vous pouvez le régler sur votre propre serveur et port (ce port peut être un nombre entre 1 et 65535) tant que le port n'est pas utilisé.
Code PHP:
Définir deux variables
$host="192.168.1.99";
$port=en 1234, états-unis saistil;
??2. Du côté du serveur, vous pouvez utiliser la fonction de temps d'arrêt() pour vous assurer que PHP ne s'éteint pas en attendant que le client se connecte.
Code PHP:
Temps d'arrêt
set-time-limite(0 (en));
??3. Sur la base précédente, il est temps de créer une prise en utilisant la fonction de création de prise--- cette fonction renvoie une poignée de prise, qui sera utilisée dans toutes les fonctions futures.
Code PHP:
Créer une prise
$socket=socket-créer(AF-inET,SOCK-STREAM (en),0 (en)) ou mourir ("Impossible de créer une prise");
??Le premier paramètre, "AF-INET", est utilisé pour spécifier le nom de domaine;
Le deuxième argument, "SOCK-STREM", indique la fonction quel type de socket sera créé (dans ce cas, type tcp)
Donc, si vous souhaitez créer une prise UDP, vous pouvez utiliser le code suivant :
Code PHP:
Créer une prise
$socket=socket-créer(AF-inET,SOCK-DGRAM (En),0 (en)) ou mourir ("Impossible de créer une prise");
??4. Une fois qu'une poignée de prise a été créée, l'étape suivante consiste à la spécifier ou à la lier à l'adresse et au port spécifiés. Cela peut être fait par le biais de la fonction de socket?bind(bind).
Code PHP:
Prise de liaison pour spécifier l'adresse et le port
$result=docket-bind($socket,$host,$port) ou mourir ("Impossible de se lier à la prise");
??5. Une fois que la prise est créée et liée à un port, il est temps de commencer à écouter les connexions externes. PHP vous permet de démarrer une écoute à partir de la fonction d'écoute de prise,) et vous pouvez spécifier un nombre (dans ce cas, le deuxième argument: 3)
Code PHP:
Commencer à écouter les connexions
$result=socket-écouter($socket,3e) ou mourir ("Impossible de mettre en place l'auditeur de prise");
??6. Jusqu'à présent, votre serveur n'a pratiquement rien fait d'autre que d'attendre une demande de connexion du client. Une fois que la connexion d'un client est reçue, la fonction d'assept de prise commence à fonctionner, il reçoit la demande de connexion et appelle un autre sous-socket pour traiter les informations client-serveur .
Code PHP:
Accepter le lien de demande
Appelez subsocket pour traiter l'information
$spawn=socket-accepter($socket) ou mourir ("Impossible de connexion entrante");
??Ce sous-socket peut maintenant être utilisé par le client suivant - la communication serveur.
7. Lorsqu'une connexion est établie, le serveur attend que le client envoie des informations d'entrée, qui peuvent être obtenues par la fonction de lecture de prise () et les assigne à la variable $input de PHP.
Code PHP:
Lire les commentaires des clients
$input=socket-lire($spawn,en 1024, états-unis) ou mourir ("Impossible de lire l'entrée");
??Le premier et le troisième paramètre de socker-read spécifie le nombre d'octets lus, que vous pouvez utiliser pour limiter la taille des données que vous obtenez du client.
Remarque : La fonction de lecture de la prise lira les données côté shell jusqu'à ce qu'elles rencontrent les caractères du .n, t, ou .0. LE SCRIPT PHP VOIT CE PERSONNAGE D'ÉCRITURE COMME UN SIGNE END POUR L'ENTRÉE.
8. Le serveur doit maintenant traiter ces est envoyé par le client est des données (dans ce cas, le traitement ne contient que l'entrée des données et de retour au client). Cette partie peut être faite par la fonction d'écriture de prise (ce qui permet de renvoyer un trafic vers le client à partir de la communication)
Code PHP:
Traiter les données d'entrée et de retour des clients
$output=strrev strrev($input) ."""""""""""""";
socket-écrire($spawn,$output,Strlen($output() ou mourir (ou mourir)"Impossible d'écrire la sortie");
??9. Une fois la sortie retournée au client, la prise parent/enfant doit se terminer par la fonction de fermeture de la prise()
Code PHP:
Désactiver les prises
socket-close($spawn);
socket-close($socket);
??