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