新客网WWW.XKER.COM:致力做中国最专业的网络学院!
学院: 操作系统 - 网络应用 - 服务器 - 网络安全 - 工具软件 - 办公软件 - Web开发 - 数据库 - 网页设计 - 图形图像 - 媒体动画 - 硬件学堂 - 存储频道 - QQ专区
您的位置:首页 > 软件开发 > Web开发 > JSP教程 > 正文:利用UDP Sockets技术实现IP多点传送2(转中华技术网)

利用UDP Sockets技术实现IP多点传送2(转中华技术网)

新客网 XKER.COM 2006-05-27 来源: 收藏本文

  int ttl=1; //设定TTL值
  InetAddress multiAddr=InetAddress.getByName(″224.0.1.100″); //设定多点传送IP
  byteSmultiBytes={'H','e','1','1','O'}; //定义一个内容为“Hello”的数据报
  //创建多点传送数据报
  DatagramPacket SmultiDatagram new Datagram Packet(SmultiBytes,SmultiBytes,length,multiAddr,multiPort);
  MulticastSocket multiSocket=new MulticastSocket();  //创建多点传送socket
  multiSocket.send(SmultiDatagram,ttl); //发送数据报(不加入到组中)
  ……
  byteRmultiBytes=new byte[256]; //定义一个空数据报,长度为256字节
  //创建接收数据报
  DatagramPacket RmultiDatagram=new DatagramPacket(RmultiBytes,RmultiBytes.length);
  multiSocket.joinGroup(multiAddr); //加入到多点传送组中
  multiSocket.receive(RmultiDatagram);//接收UDP数据报

  ……
  multiSocket.leaveGroup(multiAddr); //离开多点传送组
  multiSocket.close();  //关闭多点传送 socket
  当调用joinGroup()方法时,机器将关注沿着网络传送属于特定多点传送组的任何IP报文,也就是说,机器拥有了一个邮箱。主机还应使用IGMP相应地报告组的使用。对于多IP地址的机器,应配置数据报发送的接口:setInterface(oneOfMyLocalAddrs);
  在DatagramSocket中没有类似 setSo Timeout()的方法设置超时。

IP多点传送应用程序的开发流程
  由于IP多点传送主要用于同组中成员的交流,因此,应用程序的开发流程大体如下:
  1.创建一个需发送的按规定编址的数据报DatagramPacket;
  2.建立一个用于发送和接收的MulticastSocket;
  3.加入一个多点传送组;
  4.将数据报放入MulticastSocket中传送出去;
  5.等待从MulticastSocket接收数据报;
  6.解码数据报提取信息;
  7.根据得到的信息作出回应;
  8.重复5—7步;
  9.离开该多点传送组,关闭MulticastSocket。

结束语
  在实际应用中,发送和接收数据建议分别以单独的线程同时运行,另外,如果需在屏幕上显示,建议使用两个线程在两个不同的窗口分别负责显示发送的数据和接收的数据。□

作者单位:建设银行云南保山地区分行 (云南保山678000) 

【问题提问、论坛交流】编辑:xker.com
共2页: 上一页 [1] [2] 下一页
收藏】 【评论】 【推荐】 【投稿】 【打印】 【关闭
发表评论
要记得去论坛讨论,点击注册新会员匿名评论
评论内容:不能超过250字,需审核后才会公布,请自觉遵守互联网相关政策法规。
阅读排行
随机推荐
实用信息推荐