我有使用fwrite函数的cron,并且在cron运行1小时后它将崩溃并出现错误:
fwrite():发送29个字节失败,errno = 104连接由peer重置
在线:
$fw = @fwrite($this->sock, $msg."\r\n");
在此之后我总是关闭连接
fclose($this->sock);
似乎在PHP核心和DNS解析器中出现了问题,因为在此之后我有一些问题将主机名解析为ip adrress。在我的功能中也使用getmxrr()
和gethostbyname()
函数。如何预防这个问题?
我从PHP社区得到了这样的答案:内部fwrite是流式传输的部分代码,有时可能会发生。他们说在fwrite上修复它是不可能的,因为它可以改变使用流式传输的其他功能的一些功能。最后,它的财产没有错。
经过一些实验,我使用了更多的解决方案我用socket_create和socket_connect替换了fsockopen函数,它的效果要好得多。功能fsockopen有时连接不正确。