php socket 进程间通信

参考: 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 . "
";
        socket_write($spawn, $output, strlen($output)) or die("write die");
        socket_close($spawn);
        socket_close($socket);
        die('客户端关闭了');
    }
    $output = "发送成功:" . $input . "
";
    socket_write($spawn, $output, strlen($output)) or die("write die");
    var_dump($input);
}

  一个终端运行 a.php

另一个终端 telnet 10086 这个端口,并发送信息

原文地址:https://www.cnblogs.com/oxspirt/p/14190652.html