2 u010803887 u010803887 于 2017.01.04 09:01 提问

php socket编程警告,socket_read不知道什么原因,请大神解答 5C

Warning: socket_read(): 3 is not a valid Socket resource in
/home/work/www/..............php on line 28

源码如下:
<?php

date_default_timezone_set("PRC");

class SocketClient {

var $m_targetip;
var $m_targetport;
var $m_response;

function __construct( $targetip, $targetport ) {
$this->m_targetip = $targetip;
$this->m_targetport = $targetport;
}
public function sendAndGetMessage($sengMess){

$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
socket_set_option($socket,SOL_SOCKET,SO_RCVTIMEO,array("sec"=>1, "usec"=>0 ) );
socket_set_option($socket,SOL_SOCKET,SO_SNDTIMEO,array("sec"=>3, "usec"=>0 ) );
if ($socket < 0) {
$this->m_response = "socket creat failed: " . socket_strerror($socket);
}
$result = socket_connect($socket, $this->m_targetip, $this->m_targetport);
if ($result < 0) {
$this->m_response = "socket connection failed: " . socket_strerror($socket);
}
socket_write($socket, $sengMess, strlen($sengMess));
while ($this->m_response = socket_read($socket, 2048)) {
echo $this->m_response;
socket_close($socket);
}
}

}
?>

第28行是:socket_read($socket, 2048)
请问为什么会有这个warning信息啊?

1个回答

dabocaiqq
dabocaiqq   2017.01.14 23:19
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
php socket_read()函数的问题
服务器端文件:socket_server.php: phpinfo(); //用WEB打开的时候为了防止网页超时连接,需要设置无限有效 set_time_limit(0);   /**加载Socket必备的库*/ if(!extension_loaded('sockets')) { if(strtoupper(substr(PHP_OS, 3)) == “WIN”) { dl
php socket_recv 和 socket_read
前几天用PHP写一个socket网络服务,在文档里看到socket_read和socket_recv这两个方法时有点晕,乍一看这不是一样的嘛,干吗还要给两个不同的用法呢。看文档没看太明白,看了下源码才搞清楚,在这里记录一下。 先看一下这两个函数的声明: 复制代码代码如下: string socket_read ( resource $socket , int $lengt
socket_read 收不到数据,怎么修改超时时间?
现在socket读写数据的流程是这样的: $socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP); socket_set_option($socket,SOL_SOCKET,SO_RCVTIMEO,array("sec"=>60, "usec"=>0 ) ); socket_connect($socket, IP, PORT); soc
关于php socket编程中遇到的一些问题
网上有很多php socket的教程,但是我在自己写的时候还是碰到了几个问题,然后调试了一段时间,有一些目前也不知道原因:1.第一个问题是,如果你是这么写的:if($sock = socket_create(AF_INET, SOCK_STREAM, SOL_TCP) === false) echo 'socket_create() failed, reason:' . socket_str
64位机子,vs2010配置opencv2.4.9遇到问题解决
最近换了64位的主机,准备把之前做过的程序都整理一下,然后之前
请大神看看这是什么原因
十一月 09, 2017 9:47:16 上午 org.apache.catalina.core.StandardContext loadOnStartup SEVERE: Servlet [springmvc] in web application [/test] threw load() exception java.lang.ClassNotFoundException: org.spr
php socket 处理不过来数据流,该如何避免(好像是阻塞了)
php socket 处理不过来数据流,该如何处理(好像是阻塞了) 需求:php接受一个硬件往8888端口上发送数据,如果收到后,应socket_send函数返回“\xFA\x01\x01\xFF\xAA\xAA\x00\x01\x00\x00\x00\x00\x00\x01”,硬件再接收到socket_send发送的数据后,会“滴”一声,但是问题出现了,一个硬件还好,但是当多个硬件同时连接并同
【socket】深入浅出讲解:php的socket通信
对TCP/IP、UDP、Socket编程这些词你不会很陌生吧?随着网络技术的发展,这些词充斥着我们的耳朵。那么我想问: 1.         什么是TCP/IP、UDP? 2.         Socket在哪里呢? 3.         Socket是什么呢? 4.         你会使用它们吗? 什么是TCP/IP、UDP?          TCP/IP(Trans
php+socket+二进制方式通信
记录j str_pad()
如何通过socket进行大量返回信息的读取
<br />        我们知道,TCP协议本身一个流的协议,信息之间是没有边界的,均是字节为单位的流,在使用php进行读取socket返回的时候,根据我们的应用场景,可能只需要读取一行返回即可,此时我们非常简单调用如下API即可实现:<br /> <br />     $buffer = fgets( $sock );<br /><br /> <br />API说明:<br />    string fgets ( int handle [, int length])<br />   <br />