在阻止之前将数据打印到连接

时间:2014-08-30 17:03:02

标签: php sockets echo blocking

我正在用PHP编写NAT遍历节点,我希望能够在连接关闭之前发送数据。我需要脚本在阻塞之前发送字符串,同时等待套接字上的数据。似乎echo写入一个缓冲区,该缓冲区在脚本退出或死亡时被刷新并批量发送。这是我目前的代码:

$sktSocket = socket_create(AF_INET, SOCK_DGRAM, SOL_UDP);
$bSuccess = socket_bind($sktSocket, $_SERVER['SERVER_ADDR'], $sPass);
if($bSuccess){
    echo "wait for connection";
    flush();
    ob_flush();
    $remote_ip = "";
    $remote_port = "";
    $r = socket_recvfrom($sktSocket, $buf, 512, MSG_WAITALL, $remote_ip, $remote_port);
    //socket_sendto($sktSocket, "OK " . $buf , 100 , 0 , $remote_ip , $remote_port);
    socket_close($sktSocket);
}

我已经尝试过flush和ob_flush,但那些没有做我需要的。

在阻塞调用(socket_recvfrom)之前是否有一种方法可以写入输出流,以便发送数据然后阻塞?

0 个答案:

没有答案