广州北大青鸟计算机职业培训学校
互联网技术培训、软件技术培训、大数据培训、云计算培训、数据分析培训信息网
当前位置:网站首页 > 软件教程 > Java技术 > 正文

惠州分享Java数据报套接字通道实例_北大青鸟IT学校

作者:邓华发布时间:2021-05-13分类:Java技术浏览:899


导读:今天惠州北大青鸟老师给大家分享Java数据报套接字通道的实例,希望对大家学习Java有帮助。

今天惠州北大青鸟老师给大家分享Java数据报套接字通道的实例,希望对大家学习Java有帮助。

实例一

以下代码显示如何创建向多播组发送消息的基于DatagramChannel的组播程序。

import java.net.InetSocketAddress;import java.net.NetworkInterface;import java.net.StandardSocketOptions;import java.nio.ByteBuffer;import java.nio.channels.DatagramChannel;public class Main {  public static final String MULTICAST_IP = "239.1.1.1";  public static final int MULTICAST_PORT = 8989;  public static final String MULTICAST_INTERFACE_NAME = "eth1";  public static void main(String[] args) throws Exception {
   DatagramChannel server = DatagramChannel.open();
   server.bind(null);
   NetworkInterface interf = NetworkInterface
       .getByName(MULTICAST_INTERFACE_NAME);
   server.setOption(StandardSocketOptions.IP_MULTICAST_IF, interf);

   String msg = "Hello!";
   ByteBuffer buffer = ByteBuffer.wrap(msg.getBytes());
   InetSocketAddress group = new InetSocketAddress(MULTICAST_IP,
       MULTICAST_PORT);

   server.send(buffer, group);
   System.out.println("Sent the   multicast  message: " + msg);
 }
}

上面的代码生成以下结果。

Java数据报套接字通道例四.png

实例二

以下代码基于DatagramChannel的组播客户端程序

import java.net.InetAddress;import java.net.InetSocketAddress;import java.net.NetworkInterface;import java.net.StandardProtocolFamily;import java.net.StandardSocketOptions;import java.nio.ByteBuffer;import java.nio.channels.DatagramChannel;import java.nio.channels.MembershipKey;public class Main {  public static final String MULTICAST_IP = "239.1.1.1";  public static final int MULTICAST_PORT = 8989;  public static final String MULTICAST_INTERFACE_NAME = "eth1";  public static void main(String[] args) throws Exception {
   MembershipKey key = null;
   DatagramChannel client = DatagramChannel.open(StandardProtocolFamily.INET);

   NetworkInterface interf = NetworkInterface.getByName(MULTICAST_INTERFACE_NAME);
   client.setOption(StandardSocketOptions.SO_REUSEADDR, true);
   client.bind(new InetSocketAddress(MULTICAST_PORT));
   client.setOption(StandardSocketOptions.IP_MULTICAST_IF, interf);

   InetAddress group = InetAddress.getByName(MULTICAST_IP);
   key = client.join(group, interf);

   System.out.println("Joined the   multicast  group:" + key);
   System.out.println("Waiting for a  message  from  the"
       + "  multicast group....");

   ByteBuffer buffer = ByteBuffer.allocate(1048);
   client.receive(buffer);
   buffer.flip();    int limits = buffer.limit();    byte bytes[] = new byte[limits];
   buffer.get(bytes, 0, limits);
   String msg = new String(bytes);

   System.out.format("Multicast Message:%s%n", msg);
   key.drop();
 }
}

上面的代码生成以下结果。

Java数据报套接字通道例三.png

想知道更多关于Java的资讯,联系在线客服,或者来惠州北大青鸟新方舟校区了解了解。

java5.png

Java

标签:惠州计算机JAVA软件开发惠州计算机Java软件开发惠州计算机JAVA培训惠州计算机JAVA软件开发学校惠州计算机Java软件开发培训JAVAJava软件开发北大青鸟IT计算机学校北大青鸟IT软件学校北大青鸟IT学校


Java技术排行
标签列表
网站分类
文章归档
最近发表