Maison >développement back-end >tutoriel php >PHP implémente simplement la communication Socket entre le client et le serveur
Cet article vous présentera le processus d'implémentation simple de la communication Socket entre client et serveur en PHP
La méthode socket utilisée dans cet article.
Code d'implémentation du serveur socketserver.php
<?php /** * Created by PhpStorm. * User: jmsite.cn * Date: 2019/2/20 * Time: 11:59 */ set_time_limit(0); $host = '127.0.0.1'; $port = 8081; $socket = socket_create(AF_INET,SOCK_STREAM,SOL_TCP) or die("socket_create() 失败:".socket_strerror(socket_last_error())."\n"); $ret = socket_bind($socket,$host,$port) or die("socket_bind() 失败:".socket_strerror(socket_last_error())."\n"); $ret = socket_listen($socket,10) or die("socket_listen() 失败:".socket_strerror(socket_last_error())."\n"); while (true){ $connection = socket_accept($socket) or die("socket_accept() 失败:".socket_strerror(socket_last_error())."\n"); while (true){ socket_getpeername($connection, $addr, $port); $data = socket_read($connection, 4096); if (!$data){ break; } $msg = date("Y-m-d H:i:s")." {$addr} {$port} 已收到信息(".$data.")"; echo $msg."\n"; socket_write($connection, $msg, strlen($msg)); } }
Code d'implémentation du client socketclient.php
<?php /** * Created by PhpStorm. * User: jmsite.cn * Date: 2019/2/20 * Time: 12:22 */ $host = '127.0.0.1'; $port = 8081; $socket = socket_create(AF_INET,SOCK_STREAM,SOL_TCP) or die("socket_create() 失败:".socket_strerror(socket_last_error())."\n"); $ret = socket_connect($socket, $host, $port) or die("socket_connect() 失败:".socket_strerror(socket_last_error())."\n"); $msg = "测试发送信息,pid:".getmypid(); socket_write($socket, $msg, strlen($msg)); $data = socket_read($socket, 4096); echo "server回复:".$data."\n"; socket_close($socket);
Test de communication du socket
Exécuter le code du serveur, bloquer et attendre la connexion du client
php server.php
Exécuter le code du client plusieurs fois
php client.php server回复:2019-02-20 10:14:33 127.0.0.1 64238 已收到信息(测试发送信息,pid:1532) php client.php server回复:2019-02-20 10:14:34 127.0.0.1 64242 已收到信息(测试发送信息,pid:11620) php client.php server回复:2019-02-20 10:14:35 127.0.0.1 64243 已收到信息(测试发送信息,pid:3676) php client.php server回复:2019-02-20 10:14:36 127.0.0.1 64246 已收到信息(测试发送信息,pid:19740) php client.php server回复:2019-02-20 10:14:37 127.0.0.1 64249 已收到信息(测试发送信息,pid:23180) ......
sortie server.php
php server.php 2019-02-20 10:14:33 127.0.0.1 64238 已收到信息(测试发送信息,pid:1532) 2019-02-20 10:14:34 127.0.0.1 64242 已收到信息(测试发送信息,pid:11620) 2019-02-20 10:14:35 127.0.0.1 64243 已收到信息(测试发送信息,pid:3676) 2019-02-20 10:14:36 127.0.0.1 64246 已收到信息(测试发送信息,pid:19740) 2019-02-20 10:14:37 127.0.0.1 64249 已收到信息(测试发送信息,pid:23180) ......
C'est le processus de PHP implémentant simplement la communication Socket entre le client et le serveur.
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!