基于java局域网聊天软件终稿.docx
- 文档编号:1262731
- 上传时间:2022-10-19
- 格式:DOCX
- 页数:32
- 大小:286.45KB
基于java局域网聊天软件终稿.docx
《基于java局域网聊天软件终稿.docx》由会员分享,可在线阅读,更多相关《基于java局域网聊天软件终稿.docx(32页珍藏版)》请在冰豆网上搜索。
基于java局域网聊天软件终稿
本科毕业论文(毕业设计)
题目:
局域网聊天软件
系院:
学生姓名:
学号:
专业:
年级:
完成日期:
指导教师:
摘要
在网络越来越发达的今天,人们对网络的依赖越来越多,越来越离不开网络,由此而产生的聊天工具越来越多,例如,国外的ICQ、国内腾讯公司开发的OICQ。
基于Java网络编程的强大功能,本次毕业设计使用Java编写一个聊天系统。
一般来说,聊天工具大多数由客户端程序和服务器程序外加服务器端用于存放客户数据的数据库组成,本系统采用客户机/服务器架构模式通过Java提供的Socket类来连接客户机和服务器并使客户机和服务器之间相互通信,由于聊天是多点对多点的而Java提供的多线程功能用多线程可完成多点对多点的聊天,数据库管理系统用SQLServer2000完成并通过JDBC-ODBC桥访问数据库。
本系统建立在JAVA平台上,系统的设计使用了面向对象技术和面向对象的设计原则。
系统采用C/S结构,客户端与客户端以及客户端与服务器端之间通过Socket传送消息。
使用JAVA语言编写,开发工具采用Eclipse。
服务器端设计与实现过程中,采用了多线程技术,可以在单个程序当中同时运行多个不同的线程,执行不同的任务。
大大增强了程序对服务器资源的利用。
聊天系统完成后将可进行多人对多人的聊天,对好友进行添加、删除,对新用户的注册,发送消息、接受消息等等功能。
关键字:
多线程;客户机/服务器;JAVA;Socket;Eclipse;TCP/IP
Abstract
asthenetworkbecomemoreandmoredeveloped,peoplebecomemoreandmoreleantothenetwork,andcannotleavewithoutit.Thiscausedthechatmaterialsbecomemorenumerous,astheoverseasICQsystem,theOICQsystemthatinventedbyTencentCo.,andsoon.SowecreateanetworkchatmediumjustliketheQQ.Javanetworkprogrammingbasedonthepower,theuseofJavadesignedtopreparegraduatesachatsystem.
Ingeneral,themajorityofthechattoolforclientandserverprograminadditiontoserver-sidestorageofcustomerdataforthedatabase,thesystemusesaclient/serverarchitecturemodeltheadoptionofJavaprovidedSocketclassconnectclientandserverandbetweentheclientandservercommunicatewitheachother,asthechatistoprovidepoint-to-multipointandmulti-threadedJavafunctiontobecompletedbyusingmulti-threadedchatandmorepoint-to-multipoint,databasemanagementsystemwithSQLServer2000thecompletionandadoptionofJDBC-ODBCBridgeaccessthedatabase.
ThesystembuiltontheJAVAplatform,thesystemdesignusingobject-orientedtechnologyandobject-orienteddesignprinciples.SystemusestheC/Sstructure,clientandclient-sideandserver-sideclientandsendmessagesthroughSocket.TheuseofJAVAlanguage,developmenttoolsusingEclipse.DesignandImplementationofserver-sideprocess,theuseofmulti-threadingtechnology,whichcanprocessinasinglerunatthesametimeanumberofdifferentthreads,theimplementationofdifferenttasks.Proceduresgreatlyenhancedtheuseofserverresources.
Chatsystemwillallowpeopletocompletechattomorefriends,andthesystemcanadd,deletesomebody,candealwithnewuserregistration,sendmessages,receivemessagesandsoon.
Keywords:
Multithreading;Client/Server;JAVA;Socket;Eclipse;TCP/IP
1绪论
1.1国内外聊天系统的研究现状
目前国内外做聊天系统的公司很多,产品也琳琅满目,国内有诸如腾讯QQ、新浪UC、网易泡泡等,国外有著名的MSN(新版改名为LiveMessenger)以及跨平台Gaim等。
本人取最具代表性的QQ和MSN进行了一些研究,作为我开发聊天系统的准备。
腾讯无疑是国内即时通讯市场的霸主,自从99年进入即时通讯领域并迅速占市场之后,其在国内用户数量始终高居榜首,即使近几年面对微软MSN的强大攻势,腾讯QQ的时常占有率依然稳步增长。
腾讯的成功与其对QQ的不断创新和完善是分不开的。
参考了许多网络上的资料,以及自己通过观察腾讯QQ运行时的各种细节。
可以确定腾讯QQ是以多服务器提供服务、服务器总控客户端、客户端之间UDP直连通信的。
并且在两个客户端之间不能建立直连的情况下,才由服务器进行中转通信。
其模型如图1-1
图1-1腾讯QQ服务器-客户端模型1
与腾讯QQ不同,微软的MSNMessenger只使用了TCP作为传输层通
信协议,所有客户端与服务器进行连接,然后通过与服务器的TCP连接进行中转通信。
其模型如图1-2
图1-2MSN服务器-客户端模型2
腾讯使用的模型中,服务器主要处理客户端各种状态的控制,可以极大减轻服务器的处理压力,但其内部协议和实现复杂度都较高。
而MSNMessenger所有数据都要经过服务器,服务器压力可想而知(难怪平时很少见到使用MSN进行语音视频聊天的)。
综合腾讯QQ和微软MSNMessenger的特点,我打算在我的系统中尝试建立其类似腾讯QQ的服务器-客户端模型,但以单服务器提供服务。
1.2Java语言
1.2.1Java的发展历史
Java的发展历史,可以追朔到1990年。
当时SunMicrosystem公司为了发展消费类电子产品进行了一个名为Green的项目计划。
这个计划的负责任是JamesGosling。
起初他用具有面向对象特征的C++语言编写嵌入式软件,可以放在面包机或PDA(PersonalDigitalAssistant,个人数字主力)等小型电子消费这杯里,以使设备变得更为“聪明”,更具备人工只能。
但后来发现C++并不适合这类任务;因为C++常会使系统失效。
尤其在内存管理方面,c++采用直接地址访问方式。
需要程序员记录并管理内存资源。
这造成程序员编程的极大负担,并可能产生多个Bugs。
面包机上的程序错误可能使面包机烧坏甚至爆炸。
为了解决此类问题,Gosling决定开发一种新的语言,并取名为Oak。
它采用了大部分与C++类似的语法对可能具备危险性的功能加以改进,例如将内存管理改为由语言自己进行管理,以减少程序员的负担及可能发生的错误。
Oak是一种可移置的语言,它是一种平台独立的语言,能够在各种芯片上执行,可以降低设备的研发成本。
1.2.2Java的特点
Java是一种简单、安全、容易适用、面向对象、可移置、高性能、多线程的语言。
1.简单性
Java语言简单高校,基本Java系统(编译器和解释器)所占空间不足250KB由于Java最初是为了对家用电器进行集成控制而设计的,因而具备简单命了的特征。
2.面向对象
面向对象技术是现代工业的一次革新,提高了软件的模块化程度和重复适用率,缩短了软件开发时间,减低了卡发成本。
在Java之前虽然已经有面向对象的程序设计语言问问世,但有些如c++并不是完全的面向对象,而是面向过程和面向对象的混合体。
Java则是完全面向对象的程序设计语言。
3.安全性
Java是可以用在网路及分布环境下的网路程序设计语言。
在网路环境下,语言的安全性变得更为重要。
Java提供了许多安全机制来保证其适用上的安全性。
4.平台独立
平台独立指程序不受操作平台的限制,可以应用在各种平台上。
Java源程序经过编译后生成字节码文件,而字节码与具体的计算机无关。
只要计算机安装了能解释执行字节码的Java虚拟机JVM,就可以执行字节码文件,从而实现Java的平台独立性。
5.多线程
Java具备内建的多线程功能,可以将一个程序的不同程序段设置为不同的线程,使各线程并发、独立执行,提高系统的运行效率。
6.网络功能
Java能从全球网络资源获取所需信息,如数据文件、影响文件、声音文件等,并对所得信息进行处理,所以说Java是一种网络语言。
7.执行效率
Java的字节码需要经过Java虚拟机JVM解释成机器码才能执行,所以速度上较慢。
但是随着JVM技术的进步,使得其执行速度直逼C与C++。
1.2.3Java与Internet
Java语言取得成功的领域之一就是网络(其他语言)数页代码---->(Java)一条语句
TCP/IP(传输控制协议/网间协议)是internet的主要协议,定义了计算机和外设进行通信所使用的规则(应用层,传输层,网络层,链路层).大多数基于internet的应用程序被看作TCP/IP协议的上一层.如:
ftp,http,smtp,pop3,telnet,nntp等。
IP地址:
TCP/IP网络中的每台计算机都有唯一的地址--IP地址.
在Java中,有一个用来存储internet地址的类叫InterAddress.
Java提供的网络功能有三大类:
URL,Socket,Datagram.
1、URL是三大功能中最高级的一种,通过URLJava程序可以直接送出或读入网络上的数据.
2、Socket是传统网络程序最常用的方式,可以想象为两个不同的程序通过网络的通信信道.
3、Datagram是更低级的网络传输方式,它把数据的目的纪录在数据包中,然后直接放在网络上
1.3Socket编程
1.3.1关于TCP
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 java 局域网 聊天 软件