加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

java 实现组播 的例子

(2013-12-10 10:50:24)
标签:

it

分类: core java

1、Client 端

package test;

import java.net.DatagramPacket;

import java.net.InetAddress;

import java.net.MulticastSocket;

public class MulticastSender {

  private int port;

  private String host;

  private String data;

  public MulticastSender(String data, String host, int port) {

      this.data = data;

      this.host = host;

      this.port = port;

  }

  public void send() {

      try {

          InetAddress ip = InetAddress.getByName(this.host);

          DatagramPacket packet = new DatagramPacket(this.data.getBytes(),

                  this.data.length(), ip, this.port);

          MulticastSocket ms = new MulticastSocket();

          ms.send(packet);

          ms.close();

      } catch (Exception e) {

          e.printStackTrace();

      }

  }

  public static void main(String[] args) {

      int port = 1234;

      String host = "224.0.0.1";

      String data = "hello world.";

      MulticastSender ms = new MulticastSender(data, host, port);

      ms.send();

  }

}


2、Server端

package test;

import java.net.DatagramPacket;

import java.net.InetAddress;

import java.net.MulticastSocket;

public class MulticastListener {

  private int port;

  private String host;

  public MulticastListener(String host, int port) {

      this.host = host;

      this.port = port;

  }

  public void listen() {

      byte[] data = new byte[256];

      try {

          InetAddress ip = InetAddress.getByName(this.host);

          MulticastSocket ms = new MulticastSocket(this.port);

          ms.joinGroup(ip);

          DatagramPacket packet = new DatagramPacket(data, data.length);

          ms.receive(packet);

          String message = new String(packet.getData(), 0, packet.getLength());

          System.out.println(message);

          ms.close();

      } catch (Exception e) {

          e.printStackTrace();

      }

  }

  public static void main(String[] args) {

      int port = 1234;

      String host = "224.0.0.1";

      MulticastListener ml = new MulticastListener(host, port);

      while(true) {

          ml.listen();

      }

  }

}


0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有