繁体   English   中英

PHP Foreach并行套接字连接?

[英]PHP Foreach Parallel Socket Connections?

我有一个脚本,该脚本使用IP地址作为键和端口号作为值的关联数组,在foreach循环中连接到服务器列表。 我将少量数据写入套接字,然后从服务器读回响应。 通常,阵列中有5-15台服务器,每个事务可能需要几百毫秒,这会快速增加用户的等待时间。 有没有一种方法可以并行执行连接,从而使用户不必等待那么长时间?

foreach ($clients as $network_address => $port)
{
    $socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
    if ($socket === false) {
        continue;
    }

    $result = socket_connect($socket, $network_address, $port);
    if ($result === false) {
        continue;
    }

    socket_write($socket, $data, strlen($data));

    $response[$network_address] = socket_read($socket, 2048);

    socket_close($socket);
}

使用socket_selectarray$ readarray$ writearray$ exceptint * $ tv_sec * [, int * $ tv_usec * = 0])是最好的方法,可以与一台以上的主机通信。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM