PHP socket_recvfrom免费资源

时间:2015-05-25 12:29:54

标签: php sockets udp

我有一个用PHP编写的UDP守护进程从远程UDP设备接收数据。

Group_Concat

有没有办法在每x次迭代后刷新缓冲区,因为它似乎在某个时刻填满,数据库函数似乎不再运行,直到我终止并重新启动应用程序?

数据并不重要(这就是我使用UDP的原因)

1 个答案:

答案 0 :(得分:1)

使用ob_flush()

$sock = socket_create(AF_INET, SOCK_DGRAM, 0);
socket_bind($sock, 0, $port) or die('Could not bind to address'); 

while (true) {
  $r = socket_recvfrom($sock, $buf, 65535, 0, $remote_ip, $remote_port);
  echo "$remote_ip : $remote_port -- " . $buf ."\n";
  echo strlen($buf) . "\n";

  if(strlen($buf)%1024 == 0)
  {
      flush();
      ob_flush();
  } 

  // DO DATABASE FUNCTIONS
}

有时,您可能还需要使用flush()。这里解释的原因是:https://stackoverflow.com/a/4191417/1218075