我正在尝试在PHP中接收UDP多播流。 receive命令永远不会得到任何东西并永远等待。
我可以使用VLC播放器观看流,以便可以在我的机器上访问流。任何有关如何使用PHP执行此操作的帮助都非常感谢。
这是我的代码。
<?php
error_reporting(E_ALL | E_STRICT);
//创建一个新套接字
$socket = socket_create(AF_INET, SOCK_DGRAM, SOL_UDP);
//我不确定这个命令。我想我必须设置此选项才能开始接收数据包。
socket_set_option($socket, SOL_SOCKET, MCAST_JOIN_SOURCE_GROUP, array("group"=>"239.194.0.73","interface"=>"eth0","source"=>"239.194.0.73"));
$binded = socket_bind($socket, '127.0.0.1', 6073);
//接收数据
$from = '';
$port = 0;
socket_recvfrom($socket, $buf, 12, MSG_WAITALL, $from, $port);
echo "Received $buf from remote address $from and remote port $port" . PHP_EOL;
?>
答案 0 :(得分:3)
$binded = socket_bind($socket, '127.0.0.1', 6073);
应该是
$binded = socket_bind($socket, '0.0.0.0', 6073);
否则您只会收集来自本地主机的数据包。