PHP中的多个套接字流

时间:2013-09-22 22:00:38

标签: php sockets

在PHP中,我的脚本仅尝试测试服务器是否在线 - 仅此而已。我将如何创建同时运行的多个套接字流?如果您正在测试一堆服务器,那么一个接一个地做这件事将会永远。

2 个答案:

答案 0 :(得分:1)

通常你会启动一个threads池,线程会读取需要从队列中测试的所有站点。这将允许每个线程打开到站点的连接(支持并发)

或者pthreads?我不知道,我从来没有在php中编写线程代码

答案 1 :(得分:1)

使用select。这将列出您要读取或写入的套接字,然后告诉您它们何时准备就绪。当您读/写这些内容时,您知道您将能够获取/发送一些数据。然后,您可以处理在这些套接字上需要执行的操作,然后返回并再次选择等待更多数据。

如果您还需要做其他事情,请在选择时设置超时,即使在任何套接字上没有准备就绪,它也会在该时间内返回。

编辑:同样,一旦你弄清楚如何使用select(不那么难),调试和处理比处理线程之间的同步更简单。