Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在PHP中执行套接字写入后刷新套接字_Php_Sockets - Fatal编程技术网

在PHP中执行套接字写入后刷新套接字

在PHP中执行套接字写入后刷新套接字,php,sockets,Php,Sockets,我有以下代码: foreach ($this->_queue as $header) { $result = socket_write($this->_socket, $header, strlen($header)); if (!$result) { // check error here if result was false } } socket_close($this->_socket); 这段代码工作得很好,因为它通常

我有以下代码:

foreach ($this->_queue as $header)
{
    $result = socket_write($this->_socket, $header, strlen($header));
    if (!$result)
    {
        // check error here if result was false
    }
}
socket_close($this->_socket);
这段代码工作得很好,因为它通常会到达foreach的第三次迭代,之后它会完全中断(甚至不会到达
socket\u close($This->\u socket)
行)

我怀疑我需要做一些事情,比如冲洗插座(强制它写入,然后清洗自己或其他东西),但我没有找到任何地方表明这是可能的


通过
$this->\u queue
为每次迭代打开和关闭套接字是否更好?

您正在关闭循环中的套接字。第一次迭代之后的每次迭代都会由于套接字关闭而返回一个错误。抱歉!我编辑了我的示例,以准确地反映我现在拥有的代码。关闭循环中的套接字是我正在尝试的修复方法的一部分:)您知道不是所有数据都可以一次写入吗?看见依我看,不要以为会这样。实现这一点的方法是创建一个循环并累积发送的总长度,直到发送所有数据或返回零。@RyanVincent您建议我如何编写所述循环?我正在努力思考如何做到这一点。示例代码:。如果你愿意的话,我有完整的工作班,我可以提供——我这样做是为了回答另一个问题。