我想用 socket_read 方法来获取整个包的内容,用的代码是
while ( ($sRead= socket_read ( $sockHttp, 2048 ))) {
$this->sResponse .= $sRead;
}
可是程序运行到这里的时候就卡在这里没有反应了,好象是死循环了,不知是什么原因,还请大家帮帮忙,谢谢!
while ( ($sRead= socket_read ( $sockHttp, 2048 ))) {
$this->sResponse .= $sRead;
}
可是程序运行到这里的时候就卡在这里没有反应了,好象是死循环了,不知是什么原因,还请大家帮帮忙,谢谢!
解决方案 »
- cookie中的sessionID字段的大小写是否可以配置?
- php访问MSSQL需要安装些什么?
- 利用php代码转换编码格式的问题
- 如何把Base64编码存的图,解码以后的结果保存成图,存在内存里?或者把图直接显示在浏览器上?
- 请问这行提示的意思是
- 寻求适合WEB教育教学的整站程序(php+mysql)
- PHP Lover 期待大家的加入!
- 使用 pear包里的mail类发送邮件,发件人怎么用这样的格式:发件人名称 <发件人邮件地址>,如 老张 <[email protected]> ???
- 碰到了问题求救 没有思路了
- 简单问题,高分求教,在线等待:关于变量的变量
- 想用SESSION保护多个网页
- 验证图片是怎么验证的了,怎么判断图片上的数据
while( $sRead = socket_reag( $sockHttp, 2048, PHP_NORMAL_READ) ){
$this->sResponse .= $sRead;
}
(PHP的4> = 4.1.0,PHP 5中)socket_read - 从套接字读取一个最大长度字节
描述
字符串socket_read(资源插座,诠释长度[,int类型])
该函数socket_read()读取套接字资源的socket_create()或socket_accept()函数创建套接字。在读取的最大字节数由参数指定的长度。否则,你可以使用\ r,\ n或\ 0结束阅读(取决于类型参数,见下文)。socket_read()返回作为一个成功的,或错误假字符串(包括数据,如果远程主机关闭了连接)。错误代码可以检索与socket_last_error()。此代码可以被传递到socket_strerror()来得到一个错误的文字表述。注:socket_read()返回一个零长度字符串(“”)时,有没有更多的数据读取。可选的类型参数是一个命名的常数:
PHP_BINARY_READ - 使用系统recv()函数。用于读取二进制数据的安全。 (在PHP>“默认= 4.1.0)PHP_NORMAL_READ - 读停在\ n或\河(在PHP <= 4.0.6默认)
if(($clientSock = socket_accept($socket)) < 0){
continue;
}
echo "Client Connect\n";
$data = "";
do{
$buf = @socket_read($clientSock, 1024, PHP_NORMAL_READ);
if(!$buf){ break; }
$data.=$buf;
if(trim($buf) == "Shut"){break 2;}
if(substr($buf, -2) == "\n"){ break;}
}while(true);
echo "Client said: $data";
}