基于SOCKET技术的网络即时通讯软件的设计与实现.doc
- 文档编号:236118
- 上传时间:2022-10-07
- 格式:DOC
- 页数:39
- 大小:616KB
基于SOCKET技术的网络即时通讯软件的设计与实现.doc
《基于SOCKET技术的网络即时通讯软件的设计与实现.doc》由会员分享,可在线阅读,更多相关《基于SOCKET技术的网络即时通讯软件的设计与实现.doc(39页珍藏版)》请在冰豆网上搜索。
目录
摘要 1
1前言 2
2可行性研究 2
2.1开发背景 2
2.2技术可行性分析 2
2.3面临问题及现状 3
2.4开发目的及意义 3
2.5.1运行环境 3
2.5.2性能要求 3
3需求分析 3
3.1系统总体功能 4
3.2开发工具以及使用的主要技术简介 4
3.2.1数据库MicrosoftSQL2000简介 6
3.2.2eclipse简介 6
3.3客户机/服务期(C/S)工作原理 7
3.4套接字(SOCKET)原理图 8
3.5系统逻辑模式 9
3概要设计 10
3.1客户端 10
3.1.1用户注册功能模块 10
3.1.2发送消息功能模块 11
3.1.3查找好友功能模块 11
3.1.4添加好友模块 11
3.1.5删除好友模块 12
3.1.6修改个人信息模块 12
3.2服务器 13
3.2.1用户登录模块设计 13
3.2.2新用户注册模块设计 14
3.2.3查找网友模块设计 15
3.2.4添加好友模块设计 16
3.2.5用户之间发送数据模块设计 17
3.3数据库设计 18
3.3.1数据库结构设计 19
3.3.2数据表设计 19
3.3.3数据字典 21
(1)聊天信息字典 21
4详细设计 22
4.1服务器端 22
4.1.1服务器建立和启动模块 22
4.1.2数据库交互模块 23
4.1.3处理客户端请求模块 25
4.1.4异常处理模块 25
4.2客户端 25
4.2.1客户端与服务器建立连接模块 25
4.2.2用户登陆模块 26
4.2.3注册模块 26
4.2.4通讯模块 27
4.2.5聊天模块 28
4.2.6查找好友模块 29
4.2.7个人信息模块 30
5总结 32
参考文献 33
致谢 34
附录 35
基于socket技术的网络即时通讯软件的设计与实现
摘要:
本设计以JAVA语言作为开发平台,开发了一个跨平台的,多线程的即时通信软件。
其中主要应用的技术有数据库技术和SOCKET网络编程技术和JAVA语言的程序界面设计技术(SWING)。
它包括客户端和服务器端,客户端和服务器端的通信方式采用了SOCKET通信原理。
客户端采用了JAVA语言标准的图形界面设计技术(SWING),并结合数据库的数据管理功能设计并开发完成了一个功能全面的即时通信软件系统。
关键词:
即时通讯;网络;JAVA;SWING
DesignandImplementationofNetworkImmediateCommunicationSoftwareBasedonSocket
Abstract:
Thisdesigndevelopedthesoftwareofacross-platform,multi-threadedreal-timecommunicationsoftwarebytheJAVAprogramminglanguage.ThemainapplicationtechnologyisdatabaseandSOCKETnetworkandJavaprogramminglanguageprograminterfacedesigntechnology.Itincludesclientandserver.Thecommunicationsbetweentheserverandclienthaveusedsocketcorrespondenceprinciple.TheclienthasusedtheJAVAlanguagegraphicalinterfacetechnology(SWING),andcombineddatabase’sdatamanagementfunctionaltodesignedanddevelopedthesoftwareofthefullyfunctionalreal-timecommunication.
Keywords:
Networkimmediatecommunicationsoftware;Internet;Java;Swing
1前言
近年来,即时通讯软件行业的发展迅速,它具有的实时性、跨平台性、成本低、效率高等诸多优点。
该软件一经面世迅速地得到了多方面人士的亲赖,它的适时出现提供给现代的商务人士一个更多的信息传递方式。
即时通讯软件的优点不仅仅体现在了商务应用中,它还提供给了人与人之间的一种全新的沟通方式,由此得到了绝大部分80年后的新一代人的喜爱。
一款好的网络即时通讯软件,不但为坐在电脑面前的人们架起了一座沟通的桥梁,更创造了一个广阔的市场。
在国内的腾讯公司是最早提供即时通讯软件服务的厂商之一,到现在已经占据了国内市场的80%以上的市场份额,在这个行业内极具影响力。
随着中国电脑的普及和上网的成本降低,网络即时通讯软件的用户在未来的几年内会持续的高速的增长。
据Gartner公司的研究报告预言,到2007年,即时通讯将成为网上交流的主导方式,同时该行业的竞争也将越来越激烈。
因此,研究和设计一款网络即时通信软件,倾力打造一款适合于中国人群使用的网络即时通信软件具有十分重大的意义。
2可行性研究
2.1开发背景
电子邮件,曾经是网络交流的主要方式,但是随着人们对信息实时性的要求不断的提高,电子邮件不适合消息的实时收发的弊端也日益突出,为了满足人们新的要求,于是一种全新的软件诞生——即时通信软件(IM软件)
中国网民人口为全球第二,92.1%的网民认为互联网提升了生活质量和工作效率。
许多的企业都在企业的内部网中建立的即时的网络通信软件系统,方便企业员工更为方便的传递信息,并且可以避免外部网络环境的所带来的影响,在信息安全方面也做得比较成功。
在未来的几年即时通信软件的用户还会持续的以较高的速度增长,对于即时通讯软件的需求还将继续增长。
因此,鉴于聊天软件所特有的特性开发一个通用的即时通讯软件的系统具有重要的意义。
2.2技术可行性分析
JAVA语言已经经历了十几年的发展,技术上已经十分成熟可行,广泛的应用于客户机/服务期(B/S)系统。
基于JAVA开发的众多的应用也是层出不穷,其中包括,JSP,SERVLET,JDBC,JMS等技术。
所以用JAVA语言设计即时通信软件系统是完全可行的。
2.3面临问题及现状
中国市场上的网络即时通讯软件各有所长,但是即时通讯软件的根本还是在用户,如果用户过度的集中,那么行业垄断就必然会出现。
各个即时通讯软件之间不能相互通信,直接导致了用户更换即时通讯软件时要付出较高的成本。
既不利于即时通信软件服务提供商提高服务质量,也不利于整个行业的发展。
2.4开发目的及意义
结合现有的知识,开发一个跨平台的通用的即时通信软件具有十分重大的意义。
一方面,锻炼自己的编写程序的能力。
另一方面,争取把这个即时通讯软件推给用户使用。
使他们更加方便快捷的传递信息,提高自己的工作效率。
2.5系统综合要求
2.5.1运行环境
(1)本系统基于WINDOWSXP和SQL2000开发,适合WIN2000/WINXP等平台上运行。
(2)赛扬Ⅱ800以上,128内存,至少20M硬盘空闲空间。
(3)JRE1.5以上的java运行环境。
(4)客户端要求必须有SQL2000的JDBC驱动
2.5.2性能要求
(1)客户端
客户端与服务器端、客户端与客户端能够进行信息收发功能,信息内容不能超过200字符,信息发送延迟时间小于6秒,否则信息发送失败,并向用户返回失败原因。
(2)服务器
服务器端需要同时响应最低200个用户的访问量。
3需求分析
在现代的社会,网络及时通信软件在我们的学习工作生活中越来越重要,它可以极大的提高工作效率,增强人与人之间的沟通。
到目前为止,网络及时通信软件的用户群体还在不断的增长,各个大中型企业也都建立了自己的即时通讯平台。
网络即时通讯软件也标志着信息社会的来临,它集聊天、视频、传送文件发布以及多种娱乐功能,已经成为工作学习的有力的助手。
3.1系统总体功能
本软件模仿腾讯QQ制作,是基于局域网的即时通讯工具,开发一个即时通讯软件系统,使其具有如下的功能:
(1)能够在局域网内进行基本的聊天功能。
(2)在服务器端要求保存用户注册时候所填写的资料,如:
帐号、昵称、性别、用户的姓名、电话、电子邮件、地址、邮编等等。
(3)提供个人的简介、使用户可以自己填写自己的基本情况、如:
爱好、兴趣、个性签名等。
(4)提供用户自己定义自己的形象功能。
(5)用系统的提示音来回应用户的各种操作。
3.2开发工具以及使用的主要技术简介
SWING简介:
SWING技术是有SUN公司开发的一套标准的基于JAVA平台的图形界面发工具,具有跨平台的功能,在界面的美观上也比它的第一代(AWT)有了很大的改善,并且提供了许多了简单高效的组件,使用户可以快速的开发出一个基于JAVA语言的一个GUI程序,并且可以一次编译到其他系统平台也可以运行。
JAVA多线程技术:
多线程的各个线程看上去像是并行地独自完成各自的工作,就像一台一台计算机上运行着多个处理机一样。
在多处理机计算机上实现多线程时,它们确实可以并行工作,而且采用适当的分时策略可以大大提高程序运行的效率。
而作为接受客户端请求的服务器来说,必须使用多线程技术来接受不同时刻的请求,接收一个处理一个,将其放入线程队列,然后继续监听其他的请求。
网络通讯与Socket编程:
java网络编程中有两种不同的通讯协议,分别是TCP(面向连接)与UDP(面向无连接),两种协议各有优缺点:
TCP:
是TransferControlProtocol的简称,是一种面向连接的保证可靠传输的协议。
通过TCP协议传输,得到的是一个顺序的无差错的数据流。
发送方和接收方的成对的两个socket之间必须建立连接,以便在TCP协议的基础上进行通信,当一个socket(通常都是serversocket)等待建立连接时,另一个socket可以要求进行连接,一旦这两个socket连接起来,它们就可以进行双向数据传输,双方都可以进行发送或接收操作。
UDP:
是UserDatagramProtocol的简称,是一种无连接的协议,每个数据报都是一个独立的信息,包括完整的源地址或目的地址,它在网络上以任何可能的路径传往目的地,因此能否到达目的地,到达目的地的时间以及内容的正确性都是不能保证的。
JDBC数据库技术:
JDBC,全称为JavaDataBaseConnectivitystandard,它是一个面向对象的应用程序接口(API),通过它可访问各类关系数据库。
JDBC也是java核心类库的一部分。
JDBC的最大特点是它独立于具体的关系数据库。
与ODBC(OpenDatabaseConnectivity)类似,JDBCAPI中定义了一些Java类分别用来表示与数据库的连接(connections),SQL语句(SQLstatements),结果集(resultsets)以及其它的数据库对象,使得Java程序能方便地与数据库交互并处理所得的结果。
使用JDBC,所有Java程序(包括Javaapplications,applets和servlet)都能通过SQL语句或存储在数据库中的过程(storedprocedures)来存取数据库。
SWING界面设计:
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 SOCKET 技术 网络 即时通讯 软件 设计 实现