php socket编程 读完成后写阻塞
server端代码 如下:
client端, 代码如下:
如果将server端对client read操作换成循环内部读取,则client会一直处于 wait data状态。
有办法让server端循环读的情况下,读完后给client写数据吗
<?php
set_time_limit(0);
$host = "127.0.0.1";
$port = 12345;
$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP) or die("Could not create socket\n"); // 创建一个Socket
$result = socket_bind($socket, $host, $port) or die("Could not bind tosocket\n"); //绑定Socket到端口
$result = socket_listen($socket) or die("Could not set up socket listener\n"); // 开始监听连接
$spawn = socket_accept($socket) or die("Could not accept incoming connection\n"); // 处理通信
//若换成循环接收数据,客户端将一直处理等待接收状态
$input = socket_read($spawn, 1024) or die("Could not read data\n");
/*
while (( $data = socket_read($spawn, 1024)) != false)
$input .= $data;
*/
echo 'input:', strlen($input), "\n";
$output = date("Y-m-d H:i:s"). "\n"; //处理客户端输入并返回结果
echo "output:", $output, "\n";
// 数据传送 向客户端写入返回结果
socket_write($spawn, $output, strlen($output)) or die("Could not write output\n");
// 关闭sockets
socket_close($spawn);
socket_close($socket);client端, 代码如下:
<?php
set_time_limit(0);
$host = "127.0.0.1";
$port = 12345;
$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP)or die("Could not create socket\n"); // 创建一个Socket
$connection = socket_connect($socket, $host, $port) or die("Could not connet server\n"); // 连接
socket_write($socket, "time") or die("Write failed\n"); // 数据传送 向服务器发送消息
echo 'wait for data';
while (($buffer = socket_read($socket, 1024))!=false) {
echo("Data sent was: time\nResponse was:" . $buffer . "\n");
}
socket_close($socket);
如果将server端对client read操作换成循环内部读取,则client会一直处于 wait data状态。
有办法让server端循环读的情况下,读完后给client写数据吗
...全文
相关推荐
PHP SOCKET编程详解
主要介绍了PHP SOCKET编程详解,需要的朋友可以参考下
简单的php —— socket 编程
NULL 博文链接:https://phper123.iteye.com/blog/991304
php使用socket编程示例
主要介绍了php使用socket编程的示例,大家参考使用吧
PHP Socket 编程
下面是相应的代码: 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 soc
PHP向socket服务器收发数据的方法
主要介绍了PHP向socket服务器收发数据的方法,分析了socket收发数据的方法,并介绍了socket常用函数,需要的朋友可以参考下


基础编程
