php socket_write over blocking和non-blocking socket

时间:2012-04-12 10:22:25

标签: php sockets unix

我编写的php脚本通过unix本地套接字与服务器通信。 1)连接 2)使用socket_write()发送msg(90%的时间是低尺寸块,10%是大尺寸) 3)得到答案 4)关闭连接

现在,我有一个简单的socket_write()实现,如comments from php manual建议的“jean at briskula dot si 03-Feb-2011 03:00”

看起来它在阻塞模式下工作正常,但是我想为socket_write实现超时,因此我认为(需要)在调用socket_write()时使用非阻塞模式。

阻止模式优于非阻塞模式有什么优势吗? 是否有理由实现超时? 如何正确实现它们? 任何例子?

尝试写一个圆圈,但得到=== FALSE,可能每次在socket_write()调用之前都需要socket_select()?

PS。当从服务器读取答案时,这个问题也适用于socket_read()

1 个答案:

答案 0 :(得分:1)

对于PHP(面向Web)的脚本,通过套接字向后端系统发送数据/从后端系统接收数据,而在此期间没有机会进行其他处理(这基本上就是为什么你想要在其中使用非阻塞模式)第一名),处理非阻塞模式导致的并发症是没有意义的。

所以,坚持使用阻止模式。