图5-4 点击“开始广播”
然后点击“停止广播”时的截图如图5-5:
基于Eclipse编程环境,实现一个局域网环境下的文件的广播以及接收系统: 一行一行读取文件然后广播,同一子网掩码下的的用户都可以接收并查看。
图5-5 点击“停止广播”
在运行BroadCastWord.java后,同时运行Receive.java,点击“开始接收”按钮时的截图如图5-6:
图5-6 点击“开始接收”
基于Eclipse编程环境,实现一个局域网环境下的文件的广播以及接收系统: 一行一行读取文件然后广播,同一子网掩码下的的用户都可以接收并查看。
然后点击接收端“停止广播”时的截图如图5-7:
图5-7 点击“停止广播”
6 结束语
经过努力,我终于将课程设计做完了。在这次作业过程中,我遇到了许多困难,但在老师,同学的帮助和我的努力下,我顺利的完成了设计。这个程序代码并不多,也不复杂,但程序编写中用到了JAVA中的Swing组件,面板容器,事件处理,线程的创建、同步,输入输出处理,内部类,异常处理,和网络通信的知识,这次的课程设计让我受益非浅。设计过程中对程序整体的认知不够准确,只能想到一部分功能而不能满足整体的要求。通过查询参考书和向同学请教,最后终于搞明白了。
在整个设计过程中,对我来说,收获最大的是方法和能力,那些分析和解决问题的方法与能力。在整个过程中,我发现我的理论知识和实际应用脱节。总体来说,我觉得做这种设计对我的帮助还是很大的,它需要我们将学过的相关知识都系统地联系起来,对学过的理论进行深入的理解,这就为我们以后进行相关的工作打下了基础。
参考文献
基于Eclipse编程环境,实现一个局域网环境下的文件的广播以及接收系统: 一行一行读取文件然后广播,同一子网掩码下的的用户都可以接收并查看。
[1] 孙卫琴编JAVA网络程序精解 电子工业出版社
[2] 孙印杰 刘斌 孙玉强等编JAVA编程案例精解 电子工业出版社
[3] Merlin Hughes Michael Shoffner《Java网络编程实例》清华大学出版社
[4] 李芝兴、杨瑞龙、朱庆生《Java程序设计之网络编程》清华大学出版社 2006年3月第一版
课程设计附件: //1、广播发送端
import java.io.*;//通过数据流、序列化和文件系统提供系统输入和输出。 import .*;//为实现网络应用程序提供类。
import java.awt.*;//包含用于创建用户界面和绘制图形图像的所有类。
import java.awt.event.*;//提供处理由 AWT 组件所激发的各类事件的接口和类。 import javax.swing.Timer;//计时器
public class BroadCastWord extends Frame implements ActionListener { // Actionlisener 监听器
int port; //Frame 是带有标题和边框的顶层窗口 InetAddress group = null;//此类表示互联网协议 (IP) 地址。
MulticastSocket socket = null;//MulticastSocket播数据报套接字类用于发送和接收 IP
多播包。
Timer time = null;//Timer计时器在指定时间间隔触发一个或多个 ActionEvent。 FileDialog open = null;//FileDialog 类显示一个对话框窗口,用户可以从中选择文件。 Button select, 开始广播, 停止广播;//Button此类创建一个标签按钮。当按下该按钮
时,应用程序能执行某项动作。
基于Eclipse编程环境,实现一个局域网环境下的文件的广播以及接收系统: 一行一行读取文件然后广播,同一子网掩码下的的用户都可以接收并查看。
File file = null;//文件和目录路径名的抽象表示形式。 String FileDir = null, fileName = null;
FileReader in = null;//FileReader用来读取字符文件的便捷类。
BufferedReader bufferIn = null;//BufferedReader从字符输入流中读取文本,缓冲各个
字符,从而实现字符、数组和行的高效读取。
int token = 0;
TextArea 显示正在播放内容, 显示已播放的内容;//TextArea 对象是显示文本的多行
区域。可以将它设置为允许编辑或只读。
public BroadCastWord() {
super("单词广播系统");
select = new Button("选择要广播的文件"); 开始广播 = new Button("开始广播");
开始广播.setEnabled(false);//setEnabled()根据参数 的值启用或禁用此组件。 停止广播 = new Button("停止广播");
select.addActionListener(this);// 添加指定的动作侦听器,以接收发自此按钮的动
作事件。
开始广播.addActionListener(this); 停止广播.addActionListener(this); time = new Timer(2000, this);
open = new FileDialog(this, "选择要广播的文件", FileDialog.LOAD);
//FileDialog 类显示一个对话框窗口,用户可以从中选择文件。
显示正在播放内容 = new TextArea(10, 10);
//构造一个新文本区,该文本区具有指定的行数和列数,并将空字符串作为文本。
显示正在播放内容.setForeground(Color.pink);//设置组件的前景色为粉红色。 显示已播放的内容 = new TextArea(10, 10);
Panel north = new Panel();//Panel 是最简单的容器类。应用程序可以将其他组件
放在面板提供的空间内,这些组件包括其他面板。 north.add(select);//add将指定组件追加到此容器的尾部 north.add(开始广播); north.add(停止广播);
基于Eclipse编程环境,实现一个局域网环境下的文件的广播以及接收系统: 一行一行读取文件然后广播,同一子网掩码下的的用户都可以接收并查看。
center.setLayout(new GridLayout(1, 2));//setLayout设置此容器的布局管理器。 center.add(显示正在播放内容); center.add(显示已播放的内容); add(center, BorderLayout.CENTER); validate();//验证此容器及其所有子组件。 try {
port = 5000;
group = InetAddress.getByName("239.255.0.0");//InetAddress.getByName在给
定主机名的情况下确定主机的 IP 地址。
socket = new MulticastSocket(port);//MulticastSocket(int port)