后端开发|php教程
求大神帮忙看看,php socket的问题
后端开发-php教程
在线名片印刷源码,ubuntu安装egg,tomcat线程池执行流程,爬虫集群管理,wifi php,东阿县seo优化关键词lzw
$appenStr = $buf = \;$time = time();for($i=0;$i 5){break;}if($buf){$appenStr .= $buf;}else{break;}}echo $appenStr;
网上看了很多资料,是socket_read这个函数阻塞了,导致的客户端程序一直假死状态,一直等待上面代码的结果 返回。
但是我这样就能取出来数据了。
易语言键代码源码,vscode里怎么搜索代码,Ubuntu手绘板,如何卸载同tomcat,方缸爬虫,php 动态生成图片,贵州系统seo优化外包,织梦技术的网站首页如何更改,web后台管理模板lzw
$buf = socket_read($msgsock, 8192);$buf .= socket_read($msgsock, 8192);$buf .= socket_read($msgsock, 8192);
可是总不能算好字节数去取吧。还有下面的代码我也试过了,还是假死,一直在加载中。
asp购物源码,vscode页面显示红色感叹号,ubuntu网卡驱动更新,war包里面可以有tomcat,sqlite 丢数据,上海网页设计工作室,怎么查自己的DNS服务器,discuz关于我们插件,前端框架vue学习,爬虫怎么治,太原 php,你好seo,如何免费创建企业网站,电商网页模版之家,下拉导航模板,tabs页面切换,ftp文件管理系统,微擎 小程序模块lzw
$appenStr = $out = \;$start_time = time();do{if (false === ($out = socket_read($msgsock, 8192))){echo ("SOCKET_READ_ERROR: " . socket_strerror(socket_last_error($msgsock)));$str = "";break;}if (time() - $start_time > 1){echo ("SOCKET_READ_ERROR: Timeout!!!");$str = "";break;}$appenStr .= $out;} while ($out != "");
求大神指导
回复讨论(解决方案)
如果在输入流已经读空的情况下,你再去读,就会出现死锁(因为再也读不到东西了)
所以准确的判断是否读空是很重要的
if( trim($buf )){
$appenStr .= $buf;
}else{
break;
}
如果在输入流已经读空的情况下,你再去读,就会出现死锁(因为再也读不到东西了)
所以准确的判断是否读空是很重要的
if( trim($buf )){
$appenStr .= $buf;
}else{
break;
}
谢谢。可我试了下,还是有那问题
来人啊,求大神帮忙啊
找到答案了,哈