0

在 PHP 中,我的脚本只是尝试测试服务器是否在线- 仅此而已。我将如何创建多个同时运行的套接字流?如果您正在测试一堆服务器,那么一个接一个地执行此操作将需要很长时间。

4

2 回答 2

1

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

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

于 2013-09-22T22:03:36.400 回答
1

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

如果您还需要做其他事情,请在 select 上设置超时,它会在这段时间内返回,即使任何套接字上都没有准备好。

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

于 2013-09-22T22:54:47.413 回答