我的大学目前正在进行IPTV试验。要访问该服务,系统会要求您安装VLC媒体播放器,并通过它运行从大学内部网下载的文件,每个文件代表一个频道。
文件的格式为:
#EXTM3U
#EXTINF:0,ITV2
udp://@238.255.0.6:2001
我认为是M3U播放列表文件。幸运的是,该文件包含托管服务的服务器的IP地址,访问它的端口以及协议,在本例中为UDP。
我的问题是,如何以编程方式访问服务?客户端是否与服务器进行了特定的握手?因为它只是通过VLC媒体播放器可以访问,所以访问数据肯定是微不足道的,因为没有使用专有协议?
我不太习惯以编程方式访问互联网;我知道在Java中可以构造Port
来建模UDP。我很欣赏Java中的答案,但任何类似的语言都绰绰有余。
谢谢!
答案 0 :(得分:5)
它们是交换机级别的特殊握手,它告诉交换机您是多播组的一部分,这样您也将收到数据包。
Bellow是在java中的UDP套接字上注册和接收的示例:
// join a Multicast group and send the group salutations
InetAddress group = InetAddress.getByName("228.5.6.7");
MulticastSocket s = new MulticastSocket(6789);
s.joinGroup(group);
// get their responses!
byte[] buf = new byte[1000];
DatagramPacket recv = new DatagramPacket(buf, buf.length);
s.receive(recv);
...
// OK, I'm done talking - leave the group...
s.leaveGroup(group);
来自j2ee guide。
的示例你需要做的是加入多播组,然后只接收数据包并将它们写入文件,然后我会假设MPEG2,MPEG4或者发送的流将是你的机器上应该是的文件通过另一个程序可以玩。
答案 1 :(得分:4)
您可能需要查看VLC's Java绑定。这将使您通过Java编程接口控制VLC。您可以从Java获得VLC的所有优点!此外,您可以使用多个other API bindings和interfaces来使用VLC。