PHP SOCKET编程之-检测通讯是否中断

最近做多线程的物联网开发,由于设备使用的MODBUS协议,使用了TCP的长连接机制

因为设备的关系,可能存在断电或者断网的情况,这样TCP才进行发送请求和接受的时候,受到网络中断(实际TCP握手没有释放,因为刚好到了发送和等待接收的时候),导致发起异常

这还不是最致命的,最致命的是在多线程中,线程的创建是很耗损资源的,而出现异常也会影响线程的异常中止(PHP不比JAVA,是线程安全的)

解决的办法很简单,在进行socket_write发送和socket_recv接收之前

$status = socket_last_error($this->sock);
if($status!=0){
return false;
}

发表评论