Maison >développement back-end >tutoriel php >Introduction détaillée à la programmation php Socket

Introduction détaillée à la programmation php Socket

怪我咯
怪我咯original
2017-07-12 10:58:502720parcourir

PHP utilise la bibliothèque de sockets de Berkley pour créer ses connexions. Vous pouvez savoir que le socket n’est qu’une structure de données. Vous utilisez cette structure de données socket pour démarrer une session entre le client et le serveur. Ce serveur est toujours à l'écoute et se prépare à générer une nouvelle session. Lorsqu'un client se connecte au serveur, il ouvre un port sur lequel le serveur écoute une session. A ce moment, le serveur accepte la demande de connexion du client, puis effectue une boucle . Le client peut désormais envoyer des informations au serveur, et le serveur peut envoyer des informations au client.
Pour générer un Socket, vous avez besoin de trois variables : un protocole, un type de socket et un type de protocole public. Vous avez le choix entre trois protocoles lors de la génération d'un socket. Continuez à lire ci-dessous pour obtenir le contenu détaillé du protocole.
Définir un type de protocole public est un élément essentiel pour la connexion

Commençons par un exemple simple --- une réception de caractère d'entrée chaîne, le traitement et le renvoi de cette chaîne au service TCP du client. Le code est le suivant :

<?php
// 设置一些基本的变量 
$host = "192.168.1.99"; 
$port = 1234; 
// 设置超时时间 
set_time_limit(0); 
// 创建一个Socket 
$socket = socket_create(AF_INET, SOCK_STREAM, 0) or die("Could not create 
socket\n"); 
//绑定Socket到端口 
$result = socket_bind($socket, $host, $port) or die("Could not bind to 
socket\n"); 
// 开始监听链接 
$result = socket_listen($socket, 3) or die("Could not set up socket 
listener\n"); 
// accept incoming connections 
// 另一个Socket来处理通信 
$spawn = socket_accept($socket) or die("Could not accept incoming 
connection\n"); 
// 获得客户端的输入 
$input = socket_read($spawn, 1024) or die("Could not read input\n"); 
// 清空输入字符串 
$input = trim($input); 
//处理客户端输入并返回结果 
$output = strrev($input) . "\n"; 
socket_write($spawn, $output, strlen ($output)) or die("Could not write 
output\n"); 
// 关闭sockets 
socket_close($spawn); 
socket_close($socket); 
?>

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