查看: 1549|回复: 0

一个基于UDP数据广播的局域网络会议程(下)

[复制链接]

该用户从未签到

发表于 2007-10-24 12:54:43 | 显示全部楼层 |阅读模式
分享到:
 

 
BroadcastGroup是数据广播组标示符(波段)
  
   //ClientPort是数据广播目标端口(频率)
  packet=newDatagramPacket(b,b.length,BroadcastGroup,ClientPort);
  //发送数据包
  Sender.send(packet);
  }catch(Exceptione){}
  }
  //数据接收方法
  publicStringReceiveData()
  {
  byte[]b=newbyte[1024];
  //构造一个空的数据包
  DatagramPacketpacket=newDatagramPacket(b,1024);
  StringInMsg;
  try
  {
  //接收数据
  Receiver.receive(packet);
  }catch(IOExceptione){}
  //丛数据包中获得接收到的数据
  b=packet.getData();
  InMsg=newString(b);
  returnInMsg;
  }
  数据接收线程Receiver.java的任务是接收广播数据并更新图形用户界面。该类的构造函数包括两个参数,参数listener指定用来接收数据的Broadcast对象,参数display则指定用来显示会议内容的TextArea对象。在其运行方法run中,循环调用Broadcast对象的数据接收方法ReceiveData接收广播数据,并且利用TextArea对象的append方法将新接收到的内容显示到图形用户界面上。
  publicclassReceiverextendsThread
  {
  BroadcastListener;
  TextAreaDisplay;
  StringInMsg;
  //构造方法
  publicReceiver(Broadcastlistener,TextAreadisplay)
  {
  //Listener是一个数据发送与接收对象,用来接收数据。
  Listener=listener;
  /Display是一个TextArea对象,用来显示会议内容。
  Display=display;
  }
  //运行方法
  publicvoidrun()
  {
  while(true)
  {
  //接收广播数据
  InMsg=Listener.ReceiveData();
  //更新图形用户界面
  Display.append(InMsg);
  Display.append("\n");
  }
  }
  }
  图形用户界面chat.java是基于Java抽象窗口工具包AWT构建的。该界面包括一个用来显示会议内容TextArea,一个用来接收用户输入的TextField,以及一个数据发送命令按钮。在Chat的构造方法中,我们首先创建图形界面,构造一个数据发送与接收对象和一个数据接收线程,然后启动该线程开始接收会议信息。在这个方法中,我们还利用InetAddress.getLocalHost()方法来获得用户的机器名,这个标示符被用来作为用户在网络会议中的用户名。
  //构造方法
  publicChat()
  {
  //创建图形界面
  add(CreateGui());
  //....
  //其它操作
  //....
  //构造一个数据发送与接收对象
  Device=newBroadcast();
  //构造一个数据接收线程
  ReceiverRecv=newReceiver(Device,InMsg);
  Recv.start();
  }
  程序测试
  利用JDK1.3编译以上所有源代码:
  javac*.java
  启动网络会议程序:
  javaChat
  本示例程序在一个包括Windows98Windows2000RedHatLinux6.1/7.0MacOSSunSolaris等多种操作系统的局域网络中通过测试。
  结论
  本文介绍了网络通讯中通用的传输控制协议(TCP)和用户数据包协议(UDP),并且利用Java语言设计了一个简单的基于UDP数据广播的局域网络会议程序,展示了在Java语言中进行UDP数据发送和接收的一般步骤。本示例程序说明利用UDP数据广播能够轻易实现局域网络会议的一般功能。由于Java语言卓越的跨平台特性,一个基于Java的局域网络会议系统够不加修改的运行在一系列不同平台上。
  
回复

使用道具 举报

您需要登录后才可以回帖 注册/登录

本版积分规则

关闭

站长推荐上一条 /4 下一条



手机版|小黑屋|与非网

GMT+8, 2024-11-27 01:36 , Processed in 0.111253 second(s), 15 queries , MemCache On.

ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

苏公网安备 32059002001037号

Powered by Discuz! X3.4

Copyright © 2001-2024, Tencent Cloud.