栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

java DatagramSocket接收数据Multicast Socket发送数据

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

java DatagramSocket接收数据Multicast Socket发送数据

发送多播数据报

为了用Java发送任何类型的数据报,无论是单播,广播还是多播,都需要一个

java.net.DatagramSocket

DatagramSocket socket = new DatagramSocket();

可以选择将本地端口提供给套接字必须绑定到的DatagramSocket构造函数。仅当一个人需要其他方能够在特定港口与我们联系时才需要这样做。第三个构造函数获取要绑定的本地端口和本地IP地址。(很少)与多宿主主机一起使用,在多主机上接收流量的网络适配器很重要。

 DatagramSocket socket = new DatagramSocket();byte[] b = new byte[DGRAM_LENGTH];DatagramPacket dgram;dgram = new DatagramPacket(b, b.length,  InetAddress.getByName(MCAST_ADDR), DEST_PORT);System.err.println("Sending " + b.length + " bytes to " +  dgram.getAddress() + ':' + dgram.getPort());while(true) {  System.err.print(".");  socket.send(dgram);  Thread.sleep(1000);}

接收多播数据报

可以使用普通的DatagramSocket发送和接收单播和广播数据报,以及发送多播数据报。但是,为了接收多播数据报,需要一个MulticastSocket。原因很简单,需要做更多的工作来控制和接收UDP以下所有协议层的多播流量。

byte[] b = new byte[BUFFER_LENGTH];DatagramPacket dgram = new DatagramPacket(b, b.length);MulticastSocket socket =  new MulticastSocket(DEST_PORT); // must bind receive sidesocket.joinGroup(InetAddress.getByName(MCAST_ADDR));while(true) {  socket.receive(dgram); // blocks until a datagram is received  System.err.println("Received " + dgram.getLength() +    " bytes from " + dgram.getAddress());  dgram.setLength(b.length); // must reset length field!}

想要查询更多的信息:

  • 组播套接字
  • 数据报套接字


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/515005.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号