Php 如何接受与设备的多重连接

Php 如何接受与设备的多重连接,php,sockets,stream,Php,Sockets,Stream,我正在创建一个套接字脚本,该脚本将侦听我们的3个设备。该设备仅在一个服务器ip和一个端口中设置 $file = fopen('txt.log','a+'); $server = stream_socket_server('tcp://'.$ipserver.':'.$port, $errno, $errorMessage); if(!$server) { echo "$errorMessage ($errno)<br />\n"; }

我正在创建一个套接字脚本,该脚本将侦听我们的3个设备。该设备仅在一个服务器ip和一个端口中设置

 $file = fopen('txt.log','a+');
    $server = stream_socket_server('tcp://'.$ipserver.':'.$port, $errno, $errorMessage);

    if(!$server) {
        echo "$errorMessage ($errno)<br />\n";
    }
    else{

        while($client = @stream_socket_accept($server,$timeout)) {
               stream_copy_to_stream($client, $file);
               fclose($file);
               fclose($client);


        }

    }
$file=fopen('txt.log','a+');
$server=stream_socket_server('tcp://'.$ipserver'.:'.$port,$errno,$errmessage);
如果(!$server){
回显“$errorMessage($errno)
\n”; } 否则{ 而($client=@stream\u socket\u accept($server,$timeout)){ 流\u复制\u到\u流($client,$file); fclose($文件); fclose($客户); } }
但问题是,如果一台设备连接,两台设备就不能再连接了。我很感激有人能帮我完成这项工作。或者给我一些想法

提前感谢您。

$file=fopen('txt.log','a+');
$file = fopen('txt.log', 'a+');
$server = stream_socket_server("tcp://$ipserver:$port", $errno, $errorMessage);
if (!$server)
    echo "$errorMessage ($errno)<br />\n";
else
{
    $s = array($server);
    $t = $timeout == -1 ? NULL : $timeout;
    while ($r = $s and stream_select($r, $n=NULL, $n=NULL, $t))
        foreach ($r as $stream)
            if ($stream == $server) // new client
                $s[] = stream_socket_accept($server, -1);
            else
                if (!fputs($file, fgets($stream)))
                {
                    fclose($stream);
                    array_splice($s, array_search($stream, $s), 1);
                }
}
$server=stream\u socket\u server(“tcp://$ipserver:$port”,$errno,$errorMessage); 如果(!$server) 回显“$errorMessage($errno)
\n”; 其他的 { $s=阵列($server); $t=$timeout==-1?空:$timeout; 而($r=$s和stream_select($r,$n=NULL,$n=NULL,$t)) foreach($r作为$stream) if($stream==$server)//新客户端 $s[]=stream\u socket\u accept($server,-1); 其他的 如果(!fputs($file,fgets($stream))) { fclose($流); 阵列拼接($s,阵列搜索($s),1); } }
谢谢您的链接,但我不知道该怎么做才能让我的两台或更多设备连接到流设置阻塞($client,1);在我的while循环中,但我认为它不起作用