基于TCPIP的局域网聊天室的设计与实现.doc
- 文档编号:1260914
- 上传时间:2022-10-19
- 格式:DOC
- 页数:36
- 大小:1.22MB
基于TCPIP的局域网聊天室的设计与实现.doc
《基于TCPIP的局域网聊天室的设计与实现.doc》由会员分享,可在线阅读,更多相关《基于TCPIP的局域网聊天室的设计与实现.doc(36页珍藏版)》请在冰豆网上搜索。
学士学位论文
基于TCP/IP的局域网聊天室的
设计与实现
姓名:
学号:
指导教师:
学院:
专业:
完成日期:
学士学位论文
基于TCP/IP的局域网聊天室的
设计与实现
姓名:
学号:
指导教师:
学院:
专业:
完成日期:
摘要
随着计算机网络技术的发展,各种各样基于网络的应用也随之诞生,比如基于互联网的信息发布,通信,数据共享等等。
局域网的发展也同样迅速。
很多政府机构,企业,学校,都是先以一个统一的局域网联结在一起,再分别接入INTERNET.因此基于局域网的即时通信工具,就这样应运而生了。
所以本文提出了一个更加合理的设计,并在WINDOWS平台上加以了实现.在本实现内将客户端和服务端综合在一个程序之内,用多线程实现不同的并行任务。
并进行了人性化的界面设计,使用起来更加简单方便,并且功能十分合理,又易于扩展以及个性化定制。
本文通过局域网聊天系统来具体共享内存实现进程间的数据交换,利用windows消息机制实现进程间的同步,两种机制结合使用。
局域网聊天室作为一种新型的聊天工具可以提供更为及时、可靠、突破了必须有外界网络接入等优点,具有极其广泛的发展前景。
本文介绍了采用JAVA编程开发局域网聊天系统的一套比较常用的解决方案。
采用TCP模式进行文字聊天,在客户端之间点对点(C/C)的进行。
本系统采用典型的C/S(客户端/服务器)的框架模式,在该方案中采用Socket(套接字)原理实现网络通信,最终实现了通过服务器中转的文字聊天、文件传输功能,从而大大降低了程序的开发难度。
本系统主要包括登陆、聊天、好友列表和服务器管理几个部分。
本系统从需求分析、系统的设计、功能的实现都严格遵循了软件工程设计的思想。
【关键词】Socket;TCP/IP;C/S;局域网聊天室
Abstract
Withthedevelopmentofcomputernetworktechnology,avarietyofWeb-basedapplicationsalsowillbethebirth,suchasInternet-basedinformationrelease,communications,datasharing,andsoon.LANdevelopmentisquickly.Manygovernmentagencies,businesses,schools,arefirstlinkedtogetherinaunifiedLAN,respectivelyconnectedtotheINTERNET,LAN-basedinstantmessagingtool,andthuscameintobeing.Inthispaper,amorerationaldesign,inWINDOWSplatformtoachieveintegratedinthisrealizationoftheclientandserverindifferentparalleltaskswithinaprogram,multi-threaded.Andthedesignofuser-friendlyinterface,easytouseandveryreasonable,andeasyexpansionandcustomization.LANchatsystemtoaspecificsharedmemorydataexchangebetweenprocessandusethewindowsmessagemechanismtoachieveinter-processsynchronization,thetwomechanismsusedinconjunctionLANchatroomasanewchattoolthatcanprovidetheadvantagesofmoretimely,reliable,broketheneedofoutsidenetworkaccess,hasaverywiderangeofdevelopmentprospects.
ThisarticledescribesaJAVAProgrammingLANchatsystem,amorecommonsolution.TCPmode,textchat,peer-to-peer(C/C)betweentheclient.ThesystemusestheframeworkofatypicalC/S(Client/Server)mode,theprogramusingtheSocket(socket)theprincipleofnetworkcommunication,andultimatelythetransitthroughtheserver,textchat,filetransfercapabilities,whichgreatlyreducesthedifficultyofprogramdevelopment.Thesystemincludeslanding,chat,friendlists,andservermanagementofseveralparts.Thesystemneedsanalysis,systemdesign,therealizationoffunctionsstrictlyfollowtheideaofsoftwareengineering.
【Keywords】Socket;TCP/IP;C/S;LocalAreaNetworkChatRoom
ii
目录
第1章 引言 1
1.1课题背景 1
1.2国内外研究现状 2
1.3主要内容 3
第2章局域网聊天室系统分析 4
2.1系统需求分析 4
2.1.1功能需求 4
2.1.2系统基本流程图 4
2.1.3性能要求 5
2.1.4测试环境规定 5
2.2可行性研究 5
2.2.1成本可行性分析 5
2.2.2技术可行性分析 6
2.3系统开发环境的分析 6
2.4数据流图 6
2.4.1顶层数据流图 6
2.4.2一层数据流图 6
第3章系统设计 7
3.1设计目标 7
3.2构建开发环境 7
3.3系统模块流程图 8
3.4系统功能模块图 9
第4章基于Eclipse的聊天室的分析与设计 10
4.1TCP套接字的运用 10
4.2TCP三次握手协议 11
4.3程序结构 11
4.3.1多用户在线方案 11
4.3.2软件框架 12
4.4代码实现 12
4.4.1用户登陆模块 12
4.4.2用户列表模块 14
4.4.3文本聊天模块 16
4.4.4文件传输模块 18
第5章局域网聊天室系统测试 21
5.1系统测试结果与分析 21
5.1.1用户登陆以及用户列表 21
5.1.2文本聊天 22
5.1.3文件传输功能 25
5.2本章小结 26
结束语... 27
参考文献 .28
致 谢 30
II
基于TCP/IP的局域网聊天室的设计与实现
第1章引言
1.1课题背景
近年来,随着全球信息化进程的不断发展,网络的发展也非常迅速。
出于以快速、简洁、方便的处理各种日常工作事务的目的,越来越多的企业在其内部使用局域网来进行相应的工作。
在内部局域网的帮助下,企业能够使信息流程简化,提高相互之间信息交换的速度,进而提高工作的效率。
与此同时,随着互联网的发展,企业规模的扩大,业务量的增加,企业内部的信息越来越私密,企业只希望员工通过内部局域网进行沟通与交流,避免企业内部机密通过Internet泄露到外部,为了决上述矛盾,人们提出了开发局域网聊天软件的构想,通过局域网聊天软件,企业员工可以随时的进行即时消息传递,召开网络会议等,有利于提高工作效率,同时又保护了企业内部信息的安全。
在内部局域网的帮助下,企业得以简化信息流程,提高信息交换的速度,从而提高工作效率。
其中局域网聊天系统是一个重要组成部分,它为人们的交流提供了一个平台出于高效、快速地处理各种事务的作用[1]。
我在本文中将讨论一种基于TCP/IP使用Socket的局域网通信工具的设计与实现方法。
基于Socket的局域网通信软件可以为企业原有的局域网提供一种安全、快速、良好的通信机制。
它的实现过程只需要使用局域网聊天软件而不需要对企业的局域网现有的硬件进行改动,具有不需要支付其它的硬件花费的优点,它的使用可以降低局域网内部的通信负荷,进而提高局域网内部的使用效率,可以很好地实现企业内部局域网的各种通信需求[2]。
基于Socket的局域网聊天工具是此类局域网聊天软件的具体实例之一,它很好地诠释了基于TCP/IP的Socket通信的原理,并且在企业内部教学、讨论、通讯等应用中都具有非常好的实用价值。
它具有实时性,保密性好,占用服务器的吞吐能力低,宽带资源利用率低,方便编程实现等优点。
基于TCP/IP使用Socket的局域网通信软件具有应用范围广阔的优点,不但可以处理传统上的简单的聊天通信需求,而且也能够扩展以适应新型的网络应用,如数据传输,网络教育等,拥有非常广阔的应用前景[3]。
本系统采用多线程结构,线程是一个独立的执行流,是进程内部的一个独立的执行单元,相当于一个子程序,它对应于JAVA中的Thread类对象。
单独一个执行程序运行时,缺省地包含了一个主线程,主线程以函数地址的形式出现,提供程序的启动点,当主线程终止时,进程也随之终止。
根据实际需要,应用程序可以分解成许多独立执行的线程,每个线程并行的运行在同一进程中[4]。
一个进程中的所有的线程都在此进程的虚拟地址空间中,进行使用该进程的系统资源和全局变量。
操作系统给每个线程进行分配不同的CPU时间片,CPU只执行一个时间片内的线程,多于一个时间片的线程在执行时相应的线程在CPU内进行轮流执行,由于每个时间片时间很短,但是对于用户来说就像各个线程在计算机中的处理是并行的。
操作系统是根据线程的优先级来安排CPU的时间,优先级高的线程要优先运行,优先级低的线程则等待高优先级的运行完之后再运行[5]。
Windows提供了两种线程:
工作线程(又称为后台线程)和用户界面线程。
用户界面线程通常用来处理用户的输入并响应各种事件和消息,其实,应用程序的主执行线程Thread对象就是一个用户界面线程,当应用程序启动时自动创建和启动,同样它的终止也意味着该程序的结束,进程终止。
工作线程用来执行程序的后台处理任务[6]。
1.2国内外研究现状
基于局域网的即时通信工具,实际上是互联网即时通信工具的一个小规模版本,广域网上的即时通信工具,如今一般采用UDP或者TCP协议体系来实现,开发技术已经比较成熟,比如较早的MSN,ICQMessanger,Yahoo通这些国外开发的产品,还有国产的有名的QQ,新浪UC,LAVA-LAVA等,这些工具统统都实现了广域
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 TCPIP 局域网 聊天室 设计 实现