我是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并发送相同的请求,并在终端上有响应。任何形式的帮助都会非常感激。
谢谢...
答案 0 :(得分:2)
您应该使用两个 CRLF终止请求:
- $request .= "Icy-MetaData: 1\r\n";
+ $request .= "Icy-MetaData: 1\r\n\r\n";
希望它有所帮助。