参考: https://blog.csdn.net/qq_43187460/article/details/109557620
什么叫协议?? 上面的这个演示的就是协议!! 双方约定了相互交流的口令!!(你发了"close"字符串过来,就代表想中断通话,故服务端就关闭连接!!)
--------------------------------
a.php
<?php set_time_limit(0); $host = ‘0.0.0.0‘; $port = 10086; //创建socket $socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP) or die("创建连接失败"); //绑定socket 到指定地址和端口 $result = socket_bind($socket, $host, $port) or die("绑定失败"); //监听连接 $result = socket_listen($socket, 3) or die("监听失败"); //接收连接请求并调用另一个子Socket处理客户端--服务器间的信息 $spawn = socket_accept($socket) or die("accept not"); while (1){ //读取客户端输入 $input = socket_read($spawn, 1024) or die("can not read"); $input = trim($input); if($input == ‘close‘){ $output = "关闭了连接" . $input . "\n"; socket_write($spawn, $output, strlen($output)) or die("write die"); socket_close($spawn); socket_close($socket); die(‘客户端关闭了‘); } $output = "发送成功:" . $input . "\n"; socket_write($spawn, $output, strlen($output)) or die("write die"); var_dump($input); }
一个终端运行 a.php
另一个终端 telnet 10086 这个端口,并发送信息