电脑技术学习

一个基于UDP数据广播的局域网络会议程序_2

dn001
内容: 数据接收线程Receiver.java的任务是接收广播数据并更新图形用户界面。该类的构造函数包括两个参数,参数listener指定用来接收数据的Broadcast对象,参数 display则指定用来显示会议内容的TextArea对象。在其运行方法run 中,循环调用 Broadcast对象的数据接收方法ReceiveData 接收广播数据,并且利用TextArea对象的append方法将新接收到的内容显示到图形用户界面上。


public class Receiver extends Thread
{
Broadcast Listener;
TextArea Display;
String InMsg;

// 构造方法
public Receiver(Broadcast listener, TextArea display )
{
// Listener 是一个数据发送与接收对象,用来接收数据。
Listener = listener;
/ Display是一个TextArea对象,用来显示会议内容。
Display = display;
}

// 运行方法
public void run()
{
while(true)
{
// 接收广播数据
InMsg = Listener.ReceiveData();
// 更新图形用户界面
Display.append(InMsg);
Display.append("n");
}
}
}



图形用户界面chat.java是基于Java抽象窗口工具包AWT构建的。该界面包括一个用来显示会议内容TextArea,一个用来接收用户输入的TextField ,以及一个数据发送命令按钮。在Chat的构造方法中,我们首先创建图形界面,构造一个数据发送与接收对象和一个数据接收线程,然后启动该线程开始接收会议信息。在这个方法中,我们还利用InetAddress.getLocalHost()方法来获得用户的机器名,这个标示符被用来作为用户在网络会议中的用户名。


// 构造方法
public Chat()
{
// 创建图形界面
add(CreateGui());
// ....
// 其它操作
// ....
// 构造一个数据发送与接收对象
Device = new Broadcast();
// 构造一个数据接收线程
Receiver Recv = new Receiver(Device, InMsg);
Recv.start();
}



程序测试
利用JDK 1.3编译以上所有源代码:
javac *.java

启动网络会议程序:
java Chat

本示例程序在一个包括Windows 98,Windows 2000,Red Hat Linux 6.1/7.0,Mac OS,Sun Solaris等多种操作系统的局域网络中通过测试。

结论
本文介绍了网络通讯中通用的传输控制协议(TCP)和用户数据包协议(UDP),并且利用Java语言设计了一个简单的基于UDP 数据广播的局域网络会议程序,展示了在Java语言中进行UDP 数据发送和接收的一般步骤。本示例程序说明利用UDP 数据广播能够轻易实现局域网络会议的一般功能。由于Java语言卓越的跨平台特性,一个基于Java的局域网络会议系统够不加修改的运行在一系列不同平台上。

关于作者
蒋清野,软件工程专家。1999年7月获得清华大学学士学位,2001年1月获得伊里诺大学(Univ. of Illinois at Urbana-Champaign)硕士学位,目前是美国导航与控制公司(American GNC Corporation)工程专家。主要研究领域包括遥感图像信息处理,GPS应用,惯性导航,无线通讯和高速网络技术。电子邮件:qjiang@ieee.org。

Java, java, J2SE, j2se, J2EE, j2ee, J2ME, j2me, ejb, ejb3, JBOSS, jboss, spring, hibernate, jdo, struts, webwork, ajax, AJAX, mysql, MySQL, Oracle, Weblogic, Websphere, scjp, scjd

标签: 局域网