猿问

解析 PHP socket_listener 上的套接字数据

我能够打开一个 PHP TCP 侦听器套接字,但我不知道如何解析缓冲区。连接到我的套接字的客户端发送一个带有附加边界数据的文本/html,以及一个 xml 文件和一个图像文件。


如何解析响应以获取一侧的 XML 文件和另一侧的图像?


server = socket_create_listen(8086);

socket_getsockname($server, $addr, $port);

if (!$server) {

    $message = 'Start TCP socket: Ko. Could not create socket.';

    $this->logger->info($message);

    die($message);

} else {

    $message = 'Start TCP socket: Ok. TCP socket opened on: ' . $addr . ':' . $port . '.';

    $this->logger->info($message);


    while ($c = socket_accept($server)) {

        socket_getpeername($c, $raddr, $rport);

        $this->logger->info("Received Connection from $raddr:$rport\n");


        $data = '';

        while ($bytes = socket_recv($c, $r_data, 1024, MSG_WAITALL)) {

            $data .= $r_data;

        }


        //Edited: Explode with double line and got data

        $parsedData = explode("\r\n\r\n", $data);

        $xml = new \SimpleXMLElement($parsedData[2]);


        print_r($xml);


        else {

            echo "socket_recv() failed; reason: " . socket_strerror(socket_last_error($c)) . "\n";

        }


        socket_close($c);

    }

}

fclose($server);


慕盖茨4494581
浏览 162回答 1
1回答
随时随地看视频慕课网APP
我要回答