PHP-并发流\套接字\接受连接?

PHP-并发流\套接字\接受连接?,php,sockets,concurrency,Php,Sockets,Concurrency,我一直在尝试使用流函数设置socketserver。但有一个问题是:在我的代码中,我有: while($conn = @stream_socket_accept($server)) { $request = ""; while(substr($request, -4) !== "\r\n\r\n") { $request .= fread($conn, 1024); } $headers = "HTTP/1.1 200 OK\r\nServer: PHP "

我一直在尝试使用流函数设置socketserver。但有一个问题是:在我的代码中,我有:

while($conn = @stream_socket_accept($server))
{

  $request = "";

  while(substr($request, -4) !== "\r\n\r\n")
  {

    $request .= fread($conn, 1024);

  }

  $headers = "HTTP/1.1 200 OK\r\nServer: PHP " . phpversion() . "\r\nContent-Type: text/html\r\n\r\n";

  fputs($conn, $headers);

  fclose($conn);

}
因此,正如您可以看到的那样,我fclose($conn),否则headers/HTML不会被发送到客户端,当我关闭它时,它不会接受任何其他连接。任何帮助都将不胜感激,谢谢

编辑


我在0.0.0.0:80上运行它,所以您可以尝试它

我认为您真正想要做的是:

    while (true) {
        $conn = @stream_socket_accept($server);

        if ($conn) {
            $request = "";

            while(substr($request, -4) !== "\r\n\r\n") {
                $request .= fread($conn, 1024);
            }

            $headers = "HTTP/1.1 200 OK\r\nServer: PHP " . phpversion() . "\r\nContent-Type: text/html\r\n\r\n";

            fputs($conn, $headers);
            fclose($conn);
        }

        // only break out of this loop if you want to close the server
    }

我想你真正想做的是:

    while (true) {
        $conn = @stream_socket_accept($server);

        if ($conn) {
            $request = "";

            while(substr($request, -4) !== "\r\n\r\n") {
                $request .= fread($conn, 1024);
            }

            $headers = "HTTP/1.1 200 OK\r\nServer: PHP " . phpversion() . "\r\nContent-Type: text/html\r\n\r\n";

            fputs($conn, $headers);
            fclose($conn);
        }

        // only break out of this loop if you want to close the server
    }

现在我必须在页面上运行stream\u socket\u server(),客户端才能连接,否则页面在加载时会卡住,我该怎么办?现在我必须在页面上运行stream\u socket\u server(),客户端才能连接,否则页面在加载时会卡住,我该怎么办?你的链接指向,您的链接指向,这是我们无法访问的。