我的大学目前正在进行IPTV试验.要访问该服务,系统会要求您安装VLC Media Player,并通过它运行从大学内部网下载的文件,每个文件代表一个频道.
文件格式如下:
#EXTM3U #EXTINF:0,ITV2 udp://@238.255.0.6:2001
我认为这是一个M3U播放列表文件.幸运的是,该文件包含托管服务的服务器的IP地址,访问它的端口以及协议,在本例中为UDP.
我的问题是,如何以编程方式访问服务?客户端是否与服务器进行了特定的握手?因为它只是通过VLC媒体播放器可以访问,所以访问数据肯定是微不足道的,因为没有使用专有协议?
我不太习惯以编程方式访问互联网; 我知道在Java Port
中可以构建UDP模型.我很欣赏Java中的答案,但任何类似的语言都绰绰有余.
谢谢!
它们是交换机级别的特殊握手,它告诉交换机您是多播组的一部分,这样您也将收到数据包.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);
http://www.j2ee.me/j2se/1.4.2/docs/api/java/net/MulticastSocket.html
来自j2ee指南的例子
你需要做的是加入多播组,然后只是收回数据包并将它们写入文件,然后我会假设mpeg2,mpeg4或者流被发送将是你的机器上应该可以通过另一个播放的文件程序.