在PHP中获取UDP多播流

时间:2013-04-24 05:29:32

标签: php udp video-streaming multicast

我正在尝试在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;
?>

1 个答案:

答案 0 :(得分:3)

$binded = socket_bind($socket, '127.0.0.1', 6073);

应该是

$binded = socket_bind($socket, '0.0.0.0', 6073);

否则您只会收集来自本地主机的数据包。