我创建了一个简单的socket php 5.3脚本,其中服务器脚本调用...
socket_select($read_set, $write_set, $exception_set, 2);
...在一个循环中。我正在使用非阻塞套接字,并且脚本在Win7机器上运行。
问题:此功能会阻止脚本2秒钟。这意味着第4个参数($ tv_sec)会导致此块。
我的问题:$tv_sec
或$tv_usec
之间有什么区别? $tv_usec
做了什么?
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:没有说明
答案 0 :(得分:1)
如果希望socket_select()函数在给定的微秒量后超时,则使用$ tv_usec参数。例如,如果您希望select在小于1秒后超时,则此功能非常有用。