黄冈师范学报第28卷
JournalofHuanggangNormalUniversity
Java网络编程之“飞鸽传书’’的研究与实现
汪世福,肖
飞
(黄冈师范
计算机科学与技术,湖北黄州438000)
摘要
论述在C/S体系结构下,
设计一种局域网文件传送的工具
软件“飞鸽传书”。功能包括
局域网文件传送和局域网聊天,可同时对多用户发送多个文件;同时新增了传送文件功能不分目录与文件,统一传送,让用户使用起来更方便。最后与yatio公司的IPMSG进行分析比较,体现了
系统的优势。关键词文件传送;TCP;UDP;局域网
1
c/s体系结构
c/s(Client/Server)结构,即大家熟知的客户机和服务器结构[1]。它是软件系统体系结构,通过它
可以充分利用两端硬件环境的优势,将任务合理的分配到Client端和Server端来实现,降低了系统的通讯开销。Client和Server常常分别处在相距很远的两台计算机上,Client
程序的任务是将用户的要求提交给Server程序,再将Server程序返回的结果以特定的形式显示给用户;Server程序的任务是接收客户程序提出的服务请求,进行相应的处理,再将结果返回给客户程序。目前大多数应用软件系统都是Client/Server形式的两层结构,由于现在的软件应用系统正在向分布式的Web应用发展,Web和Client/Server应用都可以进行同样的业务处理,应用不同的模块共享逻辑组件;因此,内部的和外部的用户都可以访问新的和现有的应用系统,通过现有应用系统中的逻辑可以扩展出新的应用系统。2
Java网络编程概述
Java程序通过java.net.Socket和java.net.ServerSocket在两台主机之间建立I/0数据连接流,
文件以字节流的形式从一台主机传送到另一台主机。在TCP/IP参考模型中,应用程序处在应用层,应用层下面分别是传输层、网络互连层、主机一网络层‘引。传输层的功能是使源主机和目标主机上的进程可以进行对话。在传输层定义了两种服务质量不同的协议,即TCP(Trans
mission
Control
Protocol,传输控制协议)和UDP(User
DatagramProtocol,用
户数据报协议)。TCP协议是一种面向连接的、可靠的协议。UDP协议是一个不可靠的、无连接协议,主要适用于不需要对报文进行排序和流量控制的场合。Java.net.ServerSocket与java.net.Socket建立在TCP协议的基础上,可靠性好,可用来传送文件。java.net.DatagramSocket与java.net.DatagramPack—et是建立在UDP协议的基础上,可用来做局网来广播本地主机的IP地址。3
Java语言编程实现“飞鸽传书”
“飞鸽传书”的核心部分为局域网文件传送和
通信口]。系统启动的时候,JVM启动主线程,主线程会
做下面的几件事情:1)主线程启动广播接收服务器DatagramSocket,监听指定端口,例如2008;
收稿日期:2008—03—13.
作者简介:汪世福,男,湖北浠水人,黄冈师范计算机科学与技术在读学生.
2)主线程启动广播发送线程,传播自己的ip等信息;3)主线程启动文件接收服务器ServerSocket,监听指定端口,例如1216;4)主线程死掉。系统实现过程中用到的主要技术有:1)向多个用户发送多个文件。主要实现代码如下:
try{
ThreadclientThread=new