ImageVerifierCode 换一换
格式:DOCX , 页数:40 ,大小:1.89MB ,
资源ID:10829870      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/10829870.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(网络工程毕业设计论文 基于java的仿qq聊天程序的设计与实现.docx)为本站会员(b****7)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

网络工程毕业设计论文 基于java的仿qq聊天程序的设计与实现.docx

1、网络工程毕业设计论文 基于java的仿qq聊天程序的设计与实现 存档编号_基于Java的仿QQ聊天系统的设计与实现 内容摘要:计算机网络的迅速发展,对人类社会诸多领域产生了巨大的影响。尤其是,随着信息时代的来临,人们之间愈来愈趋向于通过网络来交流和传递信息。而聊天系统正是当前人们使用最多的中介。在这个平台上,许多认识或不认识的人们彼此间能够随意的相互交流。因此,开发和架构这种平台符合时代发展的需要。本系统在开发中用到了局域网通信机制的原理,通过直接继承Thread类来建立多线程。开发中利用了计算机网络编程的基本理论知识,如TCP/IP协议、客户端/服务器端模式(Client/Server模式)

2、、网络编程的设计方法等。在网络编程中对信息的读取、发送,是利用流来实现信息的交换,其中介绍了对实现一个系统的信息流的分析,包含了一些基本的软件工程的方法。 关键字: Socket;服务器端; 客户端; 连接(connection) Abstract:The rapid development of the computer networks has been making a great influence in many fields of human society. In particular, along with information age approaching, betwee

3、n the people tend to increasingly in exchanges and the transmission information through the network. But chats the system is precisely the current people uses many intermediary,。In this platform, people each other which many understanding or did not know can at will mutual exchange. Therefore, the d

4、evelopment and overhead construction this kind of platform conforms to the time need to develop. This system with the LAN correspondence mechanism principle, through inheritting the Thread kind to establish the multithreading directly. In the development, it uses the elementary theory knowledge whic

5、h the computer network programmes. for example, TCP/IP agreement, Client/Server pattern, network programming design method and so on. In the network programming, it realizes reading and transmission of the information, that is, informaton flows realize the information exchange, introduce information

6、 flow analysis for realizing a system, in which containes some basic software engineering methods. Key words: Socket ; server ; client ; connection1. 引言当今主流的聊天工具有QQ,ICQ,MSN Messenger,Yahoo Messenger等,国内最热门的当属QQ,腾讯QQ(OICQ)是由深圳市腾讯计算机系统公司开发的,基于Internet的即时寻呼软件。您可以使用QQ和好友用户进行交流,信息即时发送,即时回复,收发及时、功能全面。此外QQ

7、还具有BP机网上寻呼、聊天室、传输文件、语音邮件、手机短讯服务等功能,QQ不仅仅是虚拟的网络寻呼机,更可与传统的无线寻呼网、GSM移动电话的短消息系统互联,目前QQ和全国多家寻呼台、移动通信公司有业务合作。是国内不可多得的中文网络寻呼机。QQ支持显示朋友在线信息、即时传送信息、即时交谈、即时发送文件和网址。QQ可以在Win95/98/NT/2000操作系统下运行,是十分灵活的网络寻呼工具。它会自动检查您是否已联网,如果您的电脑已连入Internet,可以搜索网友、显示在线网友,可以根据QQ号、昵称、姓名、email地址等关键词来查找,找到后可加入到通讯录中。当您的通讯录中的网友在线时,QQ中朋

8、友的头像就会显示在线,根据提示就可以发送信息,如果对方登记了寻呼机或开通了GSM手机短消息,即使离线了,您也可及时将信息传递给您的好友。虽然以上这些软件是免费的,并且功能越来越强大。但是它们的唯一的不足就是必须要联网或者下载到它们的服务端,要不然是没法脱离Intenet使用的。为了能在一个没有连接到Intenet的局域网使用聊天工具,那就必须要有服务器端。本系统就是包括服务器端与客户端,可以在局域网聊天的一个工具。2. 系统分析2.1可行性分析 1)经济可行性:本系统需要一个oracle数据库服务器,由于使用人数比较少,安装一个免费的oracle数据库完全可以应付需要,所以成本就不用考虑了。

9、2)操作可行性:只要一台以上计算机连接在同一个局域网内,本系统就可以安装使用,所以操作上完全不存在问题。 3)技术可行性:本系统采用Java语言,是基于CS架构的。开发这个系统需要开发者对socket编程和java Swing这两方面的技术比较熟。由于本人长期从事于java语言编程,所以技术方面是可行的。 2.2需求分析2.2.1功能分析本系统要实现的功能如下:1)注册服务器收到用户的注册请求,便开始接受客户传递的信息,诸如客户的呢称,性别,籍贯,个人资料等,接受完毕后,便通过Jdbc-Odbc与后台数据库连接,然后向数据库添加记录,如果成功,便向客户返回其号码。客户收到服务器返回的信息后,便

10、打开主登陆窗口。2)登陆在客户端,用户输入其号码和密码,然后建立与服务器的连接,告诉服务器我要登录,服务器收到后,开始通过JdbcOdbc读取数据库,然后与用户输入的信息比较,如果成功,便打开主程序窗口。然后客户向服务器请求读取好友名单,服务器收到该请求,开始读取数据库中的表,得到好友的号码后,再在icq表中读取好友资料,然后向客户端发送这些信息,客户收到后就在主窗口显示好友,并且建立几个矢量(Vector)用以存储好友的呢称,号码。3)私聊私聊就是两个聊天。客户端首先发送消息到服务器端,服务器端根据发送人信息和接收者信息来转发。例如服务器接收到一个A发给B的消息,先判断B是否已经在线,如果在

11、线就将信息发送过去。B接收到A发来的信息,如果是未建立对话窗口,就询问是否建立对话,否则就丢弃信息。4)群聊群聊,就是多人一起聊天。过程与私聊差不多。唯一的不同就是服务器会将信息转发给指定群的所有成员。5)创建分组用户注册以后默认的好友分组只有一个。用户在执行添加分组操作以后,客户端分将一个这个动作的信息发送给服务器端(主要是FromClientlisten)。服务器端的fromClientListen接收到这个请求,会进行数据库操作,将要添加的分组信息插入到数据库中。如果成功,则返回这个分组的信息给客户端,否则返回错误提示信息。6)创建群用户注册以后群个数为0。用户在执行添加群操作以后,客户

12、端分将一个这个动作的信息发送给服务器端(主要是FromClientlisten)。服务器端的fromClientListen接收到这个请求,会进行数据库操作,将要添加的群信息插入到数据库中。如果成功,则返回这个群的信息给客户端,否则返回错误提示信息。7)查找好友并加为好友输入要查找的用户ID号,客户端发送一个查询信息给服务器端,如果找到就返回用户服务信息。打开一个用户信息显示界面,该界面会提供一个“添加为好友”按钮,点击后可将此人加为好友。如果未找到,弹出一个信息提示框。8)查找群并加入群输入要查找的群ID号,客户端发送一个查询信息给服务器端,如果找到就返回用户服务信息。打开一个群信息显示界面

13、,该界面会提供一个“加入此群”按钮,点击后可将此人加为好友。如果未找到,则弹出一个信息提示框。9)文件共享在启动文件传输服务器的共享文件功能之前,要设置它的IP号和端口,如果设置不好。好友将无法下看到这些共享的文件。还有一个重要的步骤就是添加共享文件或目录。最后启动文件共享。10)下载文件使用文件传输的客户端要正确配置好服务器的IP和端口号,以及下载好的文件的存放目录。如果其中之一配置不好,文件下载将会失败。设置好以后,点击“连接”按钮,如果配置正确,这时将会看到服务器共享的文件。目前不能支持文件夹下载,当看到一个文件夹以后,可以双击该文件夹并查看文件夹里面的文件。2.2.2性能分析 本系统由

14、于采用免费的oracle数据库软件,连接数最多不能超过200,所以并发访问数据库的人数不能超过200人。2.2.3用例图图2-1系统用例图2.2.4时序图 客户登陆、注册时的服务器端时序图 图2-2注册、登陆时的服务端的时序图本图说明: 服务器接每次与一个客户连接以后,就会去创建一个监听线程。通过线程来接收客户端发送的所有数据。如果要查询数据库,监听线程会请求获得一个数据库连接.如果数据库连接已经获得,就把连接交给DBOperation对象,通过此对象可以返回给监听线程必要的结果。最后监听线程会通过Socket将结果返回给客户端。 2.2.5活动图1)用户登陆活动图图2-3用户登陆活动图本图说

15、明: 首先填写登陆信息,提交以后服务器会对用户名和密码进行验证。如果不正确,返回一个提示信息。如果登陆成功,就更新在线状态。通知所有好友自己已经上线。2)客户之间的通信活动图图2-4客户通信活动图本图说明: 短消息发送以后,服务器端对应的监听线程会接收到一个数据包。此包中包含接收者的信息,如果接收者在线,数据包将会转发到接收者。如果不在线,就写入数据库。3)客户之间的文件传送活动图 本图说明:客户端向服务器发送文件下载请求。如果服务器端同意下载,就读取文件流并将数据流写入到客户端。客户端读取到文件名之后,立刻创建一个新的文件并将读取的数据写入到文件中。图2-5文件传送活动图4)新增好友活动图根

16、据好友ID号查找好友,如果此ID存在,就将用户信息发送到客户端。同时将好友关系写入到数据库。图2-6新增好友活动图5)删除好友活动图此图说明:客户向服务器发送删除好友请求。服务器接收到删除好友请求以后,将好友关系从数据库中删除。图2-7删除好友活动图3. 总体设计 3.1功能模块图本系统主要由由两个子系统组成:1)文件传输系统;2)聊天子系统。文件传输系统的功能主要有:1)共享文件;2)查看并下载文件。聊天子系统的功能有:1)注册;2)登陆;3)添加群;4)查找群5)私聊;6)群聊;7)查看好友资料;8)查找好友;9)添加好友;10)创建好友分组。图3-1系统功能模块图3.2数据库设计3.2.

17、1 E-R图 用户表(QQUser):属性:id,account(登陆账号),pwd,nickname,sign(个性签名),sex,email,head(头像)关系: 一个用户可以有多个好友分组。 一个用户可以有多个群。 一个用户可以有多条留言。好友分组表(Qqperson_group): 属性:id,userid(创建者ID),name(分组名) 关系:一条记录只对应一个用户,但是可以拥有多个组成员。群表(Qqpublic_group): 属性:id,userid(创建者ID号),name(群名),sign(群公告) 关系:一个群只有一个创建者,但是可以拥有多个群成员。 图3-4系统各表之

18、间的联系图3.2.2表结构设计表3-1 客户信息表(qquser)1自动id号Id整数2用户账号Account整数3用户密码Pwd字符4用户昵称Nickname字符5用户签名 sign字符6用户性别Sex字符7用户邮箱email字符8用户头像Head字符表3-2 Qq消息表(QQMessage)1自动IDID整数2发信人Account_from整数3收信人Account_to整数4发送内容Content字符表3-3 用户分组表(qqpersongroup)1自动IDID整数2拥有者Iduserid整数3分组名称name字符表3-4 公共群表(qqpublic_group)1自动IDID整数2创

19、建人userid整数3群名称name整数4群的公共消息sign字符表3-5 用户与群的中间表(qquser_publicgroup)1自动IDID整数2加入的群IDgroupid整数3加入的用户的IDuserid整数表3-6 用户与分组的中间表(QQuser_persongroup)1自动IDID整数2加入的分组的idgroupid整数3加入分组的用户的iduserid整数以上各表创建的代码如下:1)创建用户表create table qquser(number primary key,account number unique,nickname varchar(100),sign varch

20、ar(500),sex varchar(10),email varchar(100),head varchar(200);2)创建分组表create table qqperson_Group(id number primary key,userid references qquser(id),name varchar(100);3)创建群表create table qqpublic_group(id number primary key,userid number references qquser(id),name varchar(100),sign varchar(800); 4)创建消息

21、表create table qqmessage(id number primary key,account_from number,account_to number,content varchar(1000);5)创建用户与群的中间表create qquser_publicgroup (id number primary key,groupid number references qqpublic_group(id) ,userid references qquser(id););6)创建用户与分组的中间表create qquser_persongroup(id number primary

22、 key,groupid number references qqpublic_group(id) ,userid references qquser(id);7)为用户表插入数据insert into qquser values(1,1,long,Im long,male,helongyang,48.gif);insert into qquser values(2,2,a,aa,male,a,48.gif);insert into qquser values(3,3,b,bb,male,a,48.gif);insert into qquser values(4,4,c,cc,male,a,4

23、8.gif);insert into qquser values(5,5,d,dd,male,a,48.gif); 8)为分组表和群表插入数据insert into qqperson_group values(1,1,my friend);into qqpublic_group values(1,1,ha ha,my new group);9)为用户与群中间表插入数据insert into qqperson_group(1,1,1);insert into qqperson_group(1,1,2);insert into qqperson_group(1,1,3);insert into q

24、qperson_group(1,1,4);insert into qqperson_group(1,1,5);10)为用户与分组中间表加入数据insert into qqpublic_group(1,1,1);insert into qqpublic_group(1,1,2);insert into qqpublic_group(1,1,3); into qqpublic_group(1,1,4);insert into qqpublic_group(1,1,5);3.3类图图3-2系统类图Socket:非自定义类,.Socket。Thread: 非自定义类,java.util.Thread。

25、Client:负责具体发送和接收数据。FromServerListen:监听服务器是否在发送数据。MainFrame系统的主界面(包括用户列表等)。QQUserInfo包括用户的好友分组信息和群信息。QQUserClass包括用户的个人信息,如ID、用户名等。4. 详细设计及实现4.1界面设计 1)登陆界面 本界面需要填写的有两个,一个是用户账号,另一个是用户密码。在客户端,用户输入其号码和密码,然后建立与服务器的连接,告诉服务器我要登录,服务器收到后,开始通过Jdbc方式读取数据库,然后与用户输入的信息比较,否则返回错误,如果客户收到成功信息就打开主窗口,否则提示出错。如果成功,便打开主程序

26、窗口。然后客户向服务器请求读取好友名单,服务器收到该请求,开始读取数据库中的friend表,得到好友的号码后,再在好友表中读取好友资料,然后向客户端发送这些信息,客户收到后就在主窗口显示好友,并且建立几个Vector用以存储好友的信息。图4-1 登陆界面图2)注册界面本界面要填写的项目包括:用户昵称,密码,邮件地址,个性签名。需要选择的项目包括:性别,头像。本界面主要负责将用户的信息包装成一个QQUserClass对象。注册按钮一旦被点击,就会试图创建一个与服务器端的连接。连接创建成功就会将填写的信息发送到服务器端。如果服务器写入数据库成功,就回返回一个账号。使用这个账号,用户可以登陆到系统中

27、。图4-2 注册界面图3)主界面主界面是系统的核心部分。它可以列出所有好友和客户所有加入的群,也可以提供共享文件和文件下载功能。如果用户服务双击好友分组或群,好友列表或群成员列表将会显示出来。双击一个好友,可以与他进行私聊。双击一个群成员,可以与群里的所有成员对话。本界面还提供了以下右键菜单:添加好友分组、查找好友并加为好友、查找群并加为群、创建群、移动好友到其它分组、查看好友资料、查看群资料。 图4-3 系统主要界面图4)个人资料界面该界面主要显示某个用户信息,包括用户的账号,昵称,性别,个性签名,用户等级等。本界面还提供了一个“加为好友”按钮,如果点击它,此人将会被加为用户的好友。默认的是

28、加到第一个好友列表,不过也可以移动其它好友分组。图4-4 查看好友资料图5)文件传输服务器端界面该界面使用的步骤为:第一步:设置好服务器的IP,端口。IP一定要是本机的IP,如果是单机测试,IP可以填写“127.0.0.1”。端口号尽量不要小于2000,小于两千的端口可能被系统占用。设置完后点击“确定”按钮。第二步:添加共享文件。单击“添加文件共享”按钮,将需要共享的文件或文件夹添加到共享列表中。第三步:点击“启动文件发送服务”。第四步:如果共享文件完毕,需要点击“退出”。图4-5 文件传送服务器6)文件传输客户端界面使用文件传输的客户端要正确配置好服务器的IP和端口号,以及下载好的文件的存放

29、目录。如果其中之一配置不好,文件下载将会失败。设置好以后,点击“连接”按钮,如果配置正确,这时将会看到服务器共享的文件。目前不能支持文件夹下载和多文件下载,当看到一个文件以后,可以双击该文件夹并查看文件夹里面的文件。图4-6 文件传送客户端7)私聊界面 本界面主要用来显示两个人的对话信息以及发送信息。发送的信息可以设置字体,大小,字体颜色。也可以发送一个QQ表情。图4-7私聊界面图8)群聊界面本界面主要用来显示多人的对话信息以及发送信息。发送的信息可以设置字体,大小,字体颜色。也可以发送一个QQ表情。右边显示的是群公告,可以用来公布一些必要的信息。图4-8群聊天界面4.2数据输入输出设计4.2

30、.1数据输入4.2.1.1登陆界面数据的输入要求Number(账号)输入的必须是整型,它是一个用户登陆的账号。Password(密码)可以是你设置好的字符串,字符串内容可以随便。如果用户设置不正确,将会导致登陆不成功,系统会弹出相应的对话框。4.2.1.2注册界面的输入Nickname(昵称),password(密码),sign(个性签名)可以是任意的字符串。 Email必须是Email地址格式,也就是中间必须含有“”,否则提示输入不正确。4.2.1.3共享界面的输入 服务器IP:填入本机的IP地址,格式如:172.168.1.253 端口号:随便一个可以未被占用的端口都行(最好是2000以上)。4.2.2数据输出 用户注册的信息必须写入数据库中。 下载的文件存放到的指定的目录中,如果未指定就存放到默认路径中,当默认路径不存在的时候给提示用户路径不存在。4.3代码实现4.3.1服务器端设计4.3.1.1 连接池的设计连接池,就是生产一定数量的数据库连接存储在一个容

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1