无法使用PHP从套接字接收数据

时间:2014-06-17 09:46:20

标签: php shell sockets web shoutcast

我是php的新手,我需要从套接字接收数据,以便从给定的IP解析歌曲标题。为了学习和测试套接字,我首先尝试连接并接收来自给定IP的数据。 这是我的代码:

     #!/usr/bin/php -q
     <?php
    //$sock = fsockopen('205.164.35.5:80');
    $sock = socket_create(AF_INET,SOCK_STREAM,SOL_TCP);
    $result = socket_connect($sock, "205.164.35.5", 80);

    $request = "GET / HTTP/1.1\r\n";
    $request .= "Icy-MetaData: 1\r\n";

    socket_write($sock,$request,strlen($request));
    echo "OK";

    $out = " ";
    while($out = socket_read($sock,2048)){

    echo $out;
    }

    socket_close($sock);
      ?>

当我从终端运行它时,它不会产生任何错误,但它什么都不显示。我尝试使用“telnet”命令连接到该IP并发送相同的请求,并在终端上有响应。任何形式的帮助都会非常感激。

谢谢...

1 个答案:

答案 0 :(得分:2)

您应该使用两个 CRLF终止请求:

- $request .= "Icy-MetaData: 1\r\n";
+ $request .= "Icy-MetaData: 1\r\n\r\n";

希望它有所帮助。