参数$ tv_sec或$ tv_usec作为参数有什么作用?

时间:2012-03-20 17:38:47

标签: php sockets php-5.3 php-socket

我创建了一个简单的socket php 5.3脚本,其中服务器脚本调用...

socket_select($read_set, $write_set, $exception_set, 2);

...在一个循环中。我正在使用非阻塞套接字,并且脚本在Win7机器上运行。

问题:此功能会阻止脚本2秒钟。这意味着第4个参数($ tv_sec)会导致此块。

我的问题:$tv_sec$tv_usec之间有什么区别? $tv_usec做了什么?

php手册上的

Function description

socket_select(array&$read, array&$write, array&$ex, int $tv_sec[,int $tv_usec=0])
  

tv_sec: tv_sec和tv_usec一起构成了超时参数。超时是socket_select()返回之前经过的时间量的上限。 tv_sec可能为零,导致socket_select()立即返回。这对轮询非常有用。如果tv_sec为NULL(无超时),则socket_select()可以无限期地阻塞。

     

tv_usec:没有说明

1 个答案:

答案 0 :(得分:1)

如果希望socket_select()函数在给定的微秒量后超时,则使用$ tv_usec参数。例如,如果您希望select在小于1秒后超时,则此功能非常有用。