文档库 最新最全的文档下载
当前位置:文档库 › 毕业设计-基于JAVA聊天室的设计与实现

毕业设计-基于JAVA聊天室的设计与实现

毕业设计-基于JAVA聊天室的设计与实现
毕业设计-基于JAVA聊天室的设计与实现

基于JAVA聊天室的设计与实现

I

Based on the Java Chat Room Design and Implementation

ABSTRACT

The rapid development of computer network technology, so that people can choose to communicate more and more the traditional means of communication in the velocity and reliability have been difficult to meet the needs of the people, the instant communication system has become one of the new favorites is an indispensable part. Instant communication refers to the release of information and information receiver almost at the same time to transfer requirements, a small delay system tools. Such as the commonly used QQ tools, web, MSN communication system tools.The system includes the development of a network chat server program and a network chat client program in two aspects. The former through the Socket establish a server, server can read, forwarded from client information, and can refresh the list of users. The latter by establish a connection with the server, to client and client information exchange. Which uses a local area network communication mechanism, through direct Thread class inheritance to create multiple threads. Development of the computer network programming to the basic knowledge, such as the TCP / IP protocol, client / server mode ( Client / Server mode), network programming design method. Network programming in the information read, send, is the use of flow to achieve information exchange, which is introduced to implement a systematic analysis of information flow, including some basic software engineering methods. Through the analysis of these cases, the LAN chat tools using Eclipse as the basic development environment and Java language preparation, first in a short period of time can build up the system application prototype, then, for the initial prototype system, revises and the improvement unceasingly, at the same time, multi-threading, task design, developed a stable performance, fully functional the server.

The complete implementation of the function of the system. Through this graduation design can be learned about the application and implementation of object-oriented methods, how to use the Eclipse integrated development environment to create and development projects, thus the complete realization of the function of the system.

KEY WORDS:Java chat room ,application program ,development environment

II

基于Java聊天室的设计与实现

摘要

计算机网络技术的快速发展,使人们可选择的交流方式越来越多,传统的通信方式在速度和可靠性方面已经很难满足人们的需要,即时通信系统已成为人们的新宠也是人们生活中不可或缺的一部分。即时通信即指信息的发布者与信息的接收者几乎同时达到传送要求,延迟很小的系统工具。如常用的QQ工具,飞信,MSN等通讯系统工具。

该系统开发主要包括一个网络聊天服务器程序和一个网络聊天客户程序两个方面。前者通过Socket套接字建立服务器,服务器能读取、转发客户端发来信息,并能刷新用户列表。后者通过与服务器建立连接,来进行客户端与客户端的信息交流。其中用到了局域网通信机制的原理,通过直接继承Thread类来建立多线程。开发中利用了计算机网络编程的基本理论知识,如TCP/IP协议、客户端/服务器端模式(Client/Server模式)、网络编程的设计方法等。在网络编程中对信息的读取、发送,是利用流来实现信息的交换,其中介绍了对实现一个系统的信息流的分析,包含了一些基本的软件工程的方法。经过分析这些情况,该局域网聊天工具采用Eclipse为基本开发环境和Java语言进行编写,首先可在短时间内建立系统应用原型,然后,对初始原型系统进行不断修正和改进,同时,采用多线程、多任务的设计思想,开发出性能稳定,功能全面的服务器。完整的实现系统的功能。通过本次毕业设计可以学到如何应用和实现面向对象的各种方法,如何使用Eclipse集成开发环境来创建和开发项目,从而完整的实现整个系统的功能。

本系统结构设计合理,功能齐全,采用模块化设计、操作简单,具有良好的人机界面和灵活的系统可维护性;可以实现简单的功能如注册、登陆、查找好友、聊天等功能。并且服务端实现配置文件设置、用户管理、日志显示等功能。

关键词:聊天室,应用程序,开发环境

III

目录

1引言 (1)

1.1即时通讯技术概述 (1)

1.2目的和意义 (2)

2项目开发工具和技术选择 (3)

2.1开发工具 (3)

2.1.1Java简介 (3)

2.1.2 MyEclipse6.0 开发工具 (3)

2.2技术选择 (4)

2.2.1 C/S结构 (4)

2.2.2 Java Socket技术 (4)

3需求分析 (6)

3.1项目概述 (6)

3.1.1产品描述 (6)

3.1.2产品功能 (7)

3.2功能需求 (7)

3.2.1用户注册 (7)

3.2.2用户登入 (8)

3.2.3一对一聊天 (8)

3.2.4发送表情 (9)

3.2.5用户退出 (9)

3.3质量性能需求 (9)

4概要设计 (11)

4.1系统的代码结构 (11)

4.2主程序类的设计(MainWin类) (11)

4.3多线程的设计 (11)

4.4服务器端的设计(Server类) (12)

4.5消息通信的设计 (12)

5系统的实现 (14)

5.1主程序类的实现 (14)

5.2多线程的实现 (14)

5.3服务器连接的实现 (15)

IV

5.4消息通信的实现 (15)

6详细设计 (17)

6.1客户端注册 (17)

6.1.1功能描述 (17)

6.1.2综合设计 (17)

6.2登入 (19)

6.2.1功能描述 (19)

6.2.2综合设计 (20)

6.3聊天 (22)

6.3.1功能描述 (23)

6.3.2综合设计 (23)

6.4发送系统消息 (24)

6.4.1功能描述 (24)

6.4.2综合设计 (24)

6.5功能逻辑实现 (24)

6.5.1逻辑功能描述 (24)

6.5.2综合设计 (25)

7系统测试 (26)

7.1测试举例 (26)

7.1.1测试程序登录界面 (26)

7.1.2测试程序主界面 (26)

7.1.3测试程序退出 (26)

7.2测试项目 (26)

7.2.1单元测试 (27)

7.2.2组合测试 (27)

7.2.3确认测试 (27)

7.2.4系统测试 (27)

7.2.5用户验收测试 (28)

结论 (29)

致谢 (30)

参考文献 (31)

毕业设计说明书(论文)缩写稿 (31)

The Abbreviation Version of the Thesis of Undergraduates (39)

基于JAVA聊天室的设计与开发 1

1引言

1.1即时通讯技术概述

最初接触的即时通讯(Instant Messenger,简称IM)即为聊天室。老牌的ICQ、国内非常受大众欢迎的腾讯QQ以及微软开发的MSN, Messenger都是我们十分关注的焦点。通过这些即时通讯工具我们可以在网上迅速的找到朋友或者工作伙伴,进行实时交流和互传信息。经过这些年的研究发展,不少IM软件还集成了数据交换、语音以及视频聊天、网络会议、电子邮件等功能。

IM技术全称Instant Messaging,中文翻译“即时通讯”,它是一种使人们能在网上识别在线用户并与互联网上的年轻中国实时交换消息的技术,是电子邮件发明以来迅速崛起的在线通讯方式。

IM的出现和互联网有着密不可分的关系,IM完全是基于TCP/IP网络协议族来实现,而TCP/IP协议族则是整个互联网得以实现的技术基础。最早出现即时通讯协议是IRC(Internet Relay Chat),但是可惜的是它仅能单纯的使用文字、符号的方式通过互联网进行交谈和沟通。随着互连网变得高度发达,即时通讯也变得远不仅仅是聊天这么简单,自从1996年第一个IM产品ICQ发明后,IM的技术和功能也开始基本成型,语音、视频、文件共享、短信发送等高级信息交换功能都可以在IM工具上实现,于是功能强大的IM软件便足以搭建一个完整的通信交流平台。目前即时通讯、Twitter受宠电子邮件过气最具代表性的几款的IM通讯软件有MSN、Google Talk、Yahoo、Messenge腾讯QQ等。

即时通讯技术(IM)支持用户在线实时交谈。如果要发送一条信息,用户需要打开一个小窗口,以便让用户及其朋友在其中输入信息并发送信息时让交谈双方都看到交谈的内容。大多数常用的即时通讯发送程序都会提供各种各样的功能。

IM软件的历史并不久远,但是当时它一诞生,就立即受到许许多多的网民的喜爱和青睐,并且迅速的风靡全世界。而在它的发展史上,以色列人所作出的贡献是不可忽略的。在1996年7月四位以色列年轻人共同成立了Mirabilis公司,并且于同年11月推出了全世界第一个即时通讯软件ICQ,即“I Seek You”,意为“我在找你”,简称就为ICQ了。直到现在,ICQ已经推出了它的2002a版本,在全球即时通讯市场上占有非常重要的地位。同时,ICQ仍然存在一些局限性。一是英文界面,二是在使用操作上有相当的困难,这使得ICQ在国内使用的范围虽然也比较广,但始终不是特别普及和推广,大多局限于“网虫”级别的高手里。

目前,国内最为流行的即时通讯软件是OICQ(简称QQ)。腾讯QQ以良好的中文

2

1引言

界面和不断增强的功能形成了一定的QQ网络文化。由于当时这种需要随时在网上运行的聊天工具一直受制于互联网的拨号上网,这导致QQ用户数一增加就要不断的扩充服务器,客观上来说,电信运营商对宽带投入的大幅增长导致互联网的更加普及,在某种意义上说,这是即时通讯繁荣的物质基础。

Messenger虽然出道较晚,但依托微软的强大背景,实力也不可小视。作为Windows XP的一部分,Messenger整合了操作系统的许多功能,如多种形式的聊天选择、多人的单窗口讨论式交流以及充分的文件与桌面共享功能等。它的令人耳目一新的中文界面和注册方式,连同它强大的功能,着实吸引了众多的眼球的注视。

1.2目的和意义

目的:

通过Java的手段来模仿QQ,设计一个用于局域网的即时通讯工具,使其具有一般的即时通讯工具具有的功能。如注册、登陆、查找好友、实现即时消息的发送与接收,可多人会话,并且可通过统一的消息管理器管理,服务端还需实现配置文件设置、用户管理、日志显示的功能。并且可以完成在学校的范围搭建一个可以供老师及学生相互交流及联系的平台。学生与学生之间不必再通过互联网或手机等方式来实现相互之间的通信,完全可以通过Java QQ中的通信功能进行联系。老师可以通过Java QQ向同学们发送及时的信息如学院的通知、考试通知、成绩通告,及时掌握学生的动态,提供必要的帮助。这就有效地解决老师与老师之间的,老师与学生之间的,学生与学生之间的通讯问题。

通过课题的设计对从而使我们对Java的开发背景有更加深刻的认识,同时可更加熟练的应用Java相关的知识,学会理论联系实践用知识去解决现实生活当中的问题。

意义:

网络聊天室是一项应用广泛,并且实用性强的一个应用,虽然其功能简单,但是在其开发技术和过程中,能够充分学习和使用Java的技术,如:开发各界面(登入、注册、聊天等界面)使用Swing组件技术,实现网络的功能使用Socket/Server Socket技术,实现数据的保存,并且在开发过程当中,能充分的使用和体会面向对象技术的原理和方法。

通过对该项目的设计以开发可以使自己在Java技术方面得到全面应用,使自己项目开发能力的一个很好体现。并且对Java有更进一步的认识,充分理解和掌握Java在现实生活中的应用。将开发出来的作品运用到实际当中,如学校,企业等其他任何需要的地方。使人们之间的交流和沟通更加的多元化,也使信息的传递更加快捷和有效。在设计和开发的过程中不断跟踪国内外最新的技术和开发模式,即时了解和掌握流行的即时通讯机制并且应用到实践过程中,极大的提高自己的设计和开发软件的积极性。即时通讯的出现改变了人们的沟通方式和交友文化,大大扩展了个人生活交流的空间。

基于JAVA聊天室的设计与开发 3

2项目开发工具和技术选择

2.1开发工具

2.1.1 Java简介

Java最早大概可追溯至1991年四月份,Sun的绿色计划(Green Project)开始着手于发展消费性电子产品(Consumer Electronics),所使用的语言是C、C++、及Oak (为Java 语言的前身),后因语言本身和市场的问题,使得消费性电子产品的发展无法达到当初预期的目标,再加上网络的兴起,绿色计划也因此而改变发展的方向,最终导致Java 的产生。Java是一种简单的、面向对象的、健壮的、安全的、解释的、与平台无关的、多线程的、动态的语言。Java是一种软件技术,是一种由美国Sun计算机公司(Sun Microsystems, Inc.)所研究而成的语言;是一种为Internet发展的计算机语言;是一种使网页(Web Page)产生生动活泼画面的语言;是一种使网页由静态转变为动态的一种语言;是一种语言,用以产生小应用程序(Applet(s));是一种简化的C++语言是一种安全的语言,具有阻绝计算机病毒传输的功能;是一种将安全性(Security)列为第一优先考虑的语言;是一种使用者不需花费很多时间学习的语言;是一种突破用户端机器环境和CPU结构的语言;是一种写一次,即可在任何机器上执行的语言是有史以来,第一套允使用者将应用程序(Applications)通过Internet从远端的服务器(Remote Server)传输到本地端的机器上(Local Machine)并执行;是一种应用程序提供者不需要知道使用者的计算机硬件(如:Sun, Intel, 或Mac等)与软件(如:SW- UNIX, MAC O/S, Windows, 或NT等)环境的语言。

2.1.2 MyEclipse6.0 开发工具

Java的开发工具很多,而且各有优缺点,Eclipse是一个开放可扩展的集成开发环境(IDE)。它不仅可以用于Java的开发,通过开发插件,它可以构建其他的开发工具。Eclipse是开放源代码的项目,并可以免费下载。支持最新的Java标准,并且缩短了开发周期。一直以其友好的集成开发环境在业界受到广泛的赞誉,这也是Eclipse一直是广大程序员最喜爱的Java开发工具的原因之一。

Eclipse的可视化集成开发环境包括文本编辑器、工程创建工具、对象浏览器和调试器等。用户可以在集成开发环境中创建工程和打开工程,建立、打开和编辑文件,并可以编译、运行和调试应用程序。可以说在Eclipse集成开发环境中开发Java程序,快速而且高效。其主要特点如下:

(1)开放的可扩展的IDE

4

2项目开发工具和技术选择

(2)成功的底层图形界面API

(3)强大的插件加载功能

(4)可以通过导入一些CVS相关的插件来实现版本管理的便易性

Eclipse是一个开放源代码的、基于Java的可扩展开发平台。但就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。然而幸运的是,Eclipse附带了一个标准的插件集,包括Java开发工具(Java Development Tools,JDT)。Eclipse 同时还包括插件开发环境(Plug-in Development Environment,PDE),这个组件主要针对希望扩展Eclipse的软件开发人员,因为它允许他们构建与Eclipse环境无缝集成的工具。专注于为高度集成的工具开发提供一个全功能的、具有商业品质的工业平台。它主要由Eclipse项目、Eclipse工具项目和Eclipse技术项目三个项目组成,具体包括四个部分组成——Eclipse Platform、JDT、CDT和PDE。JDT支持Java开发、CDT支持C 开发、PDE用来支持插件开发,Eclipse Platform则是一个开放的可扩展IDE,提供了一个通用的开发平台。它提供建造块和构造并运行集成软件开发工具的基础。Eclipse Platform允许工具建造者独立开发与他人工具无缝集成的工具从而无须分辨一个工具功能在哪里结束,而另一个工具功能在哪里开始。

2.2技术选择

2.2.1 C/S结构

C/S结构软件(即客户机/服务器模式)分为客户机和服务器两层,客户机/服务器网络中,服务器是网络的核心,而客户机是网络的基础,客户机依靠服务器获得所需要的网络资源,而服务器为客户机提供网络必须的资源。客户机不是毫无运算能力的输入、输出设备,而是具有了一定的数据处理和数据存储能力,通过把应用软件的计算和数据合理地分配在客户机和服务器两端,可以有效地降低网络通信量和服务器运算量。

C/S结构的优势:(1)应用服务器运行数据负荷较轻。最简单的C/S体系结构的数据库应用由两部分组成,即客户应用程序和数据库服务器程序;(2)数据的储存管理功能较为透明。

C/S结构的劣势:(1)高昂的维护成本且投资大。首先,采用C/S架构,要选择适当的数据库平台来实现数据库数据的真正“统一”,使分布于两地的数据同步完全交由数据库系统去管理;(2)传统的C/S结构的软件需要针对不同的操作系统系统开发不同版本的软件,由于产品的更新换代十分快,代价高和低效率已经不适应工作需要。

2.2.2 Java Socket技术

本课题选择了Java Socket技术开发网络聊天室。什么是Socket? Socket是一种用于表达两台机器之间连接“终端”的软件抽象。对于一个给定的连接,在每台机器上都

基于JAVA聊天室的设计与开发 5

有一个Socket,你可以想象一个虚拟的"电缆"工作在两台机器之间,“电缆”插在两台机器的Socket上。当然,物理硬件和两台机器之间的“电缆”这些连接装置都是未知的,抽象的所有目的就是为了让我们不必了解更多的细节。简单的说,一台计算机上的Socket同另一台计算机通话创建一个通信信道,程序员可以用这个信道在两台机器之间发送数据。当你发送数据时,TCP/IP协议栈的每一层都给你的数据里添加适当的报头。有个好消息是Java语言隐藏了所有这些细节,这也是为什么他们有时被叫做“流Socket”。思考一下Socket像电话听筒一样在电话的任意一端,你和我通过一个专门的信道来进行通话和接听。会话将一直进行下去直到我们决定挂断电话(除非我们使用蜂窝电话),除非我们挂断电话,否则我们各自的电话线路都会占线。如果你需要在两台机器之间进行通讯而不使用高级机制像ORBS(以及CORBA, RMI, IIOP等等),Socket 比较适合你。Socket的底层机制则相当棘手。幸运的是,Java平台给我们一些虽然简单但是相当强大的高层抽象以至于我们创建和使用Socket更加容易一些。

6

3需求分析

3需求分析

3.1项目概述

3.1.1产品描述

人们日常生活中越来越多地使用这项新的技术来为自己的工作和学习服务。一个操作简单、界面友好、运行稳定的网络聊天室对于小型局域网内的用户可以起到很好的交流作用。本聊天室就是一个可以让许多用户同时互相通信的网上园地,个人用户可以通过网上聊天室将自己融入整个主流社会中。因此,在网上聊天室这个虚拟的社会中,可以结交各层次各地方的朋友,从而为自己获取更多的知识和更多的阅历。

该小聊天室是为许多喜爱上网聊天的朋友开发设计的。和许多大型的网络聊天室相比该小聊天室比较简单,但能实现聊天的基本功能,点对点聊天等,基于时间和技术的原因,很遗憾传送文件的功能尚未实现。本聊天室主要由注册界面、登录界面、聊天室界面、功能设置界面等构成。整个设计简洁明了、实用,使用简单。Array

图3-1 客户端结构图

基于JAVA聊天室的设计与开发7

图3-2 服务器端结构图

3.1.2产品功能

本项目具有以下主要功能:

客户端:

(1)用户注册功能:实现用户的登入ID注册和个人信息,并存入服务器数据库中。

(2)用户登入功能:实现合法注册用户的登入。

(3)聊天功能:实现用户和在线的其他用户一对一的聊天方式。

(4)发送表情和设置聊天内容字体,并可以设置字体颜色和背景色等。

服务端:

(1)可以不断的监听客户端请求

(2)显示登入客户的信息

(3)发送系统消息

3.2功能需求

3.2.1用户注册

需求描述:用户填写系统给出的注册项目,并提交给系统,成功注册后,系统生成用户所注册的登入ID,并保存在数据库当中。

执行者:用户

前置条件:无

后置条件:无

8

3需求分析

正常过程:

(1)向服务端发送注册请求

(2)服务端响应客户端,客户端弹出注册信息表单

(3)用户填写完表单后将注册数据传给服务端处理,并保存在数据库中

(4)返回客户端一个响应,显示用户注册的ID,提示注册成功。

异常过程:

(1)用户填写表单的数据格式不正确或表单中存在空缺的项,客户端给予提示信息,并将光标定位到出错的地方。

(2)用户注册的项在数据库中发生冲突,客户端提示注册不成功并提示用户重新填写表单。

(3)服务器未启动或出现异常

3.2.2用户登入

需求描述:用户填写登入ID 和密码,经服务器验证成功后进入聊天室主界面。

执行者:用户

前置条件:用户成功注册或已经拥有一个合法的ID号

后置条件:无

正常过程:

(1)向服务端请求连接,并发送登录信息。

(2)服务端处理并查询数据库中的用户信息。

(3)返回客户端一个响应,提示登录成功,弹出聊天室主界面。

(4)刷新其他在线用户的用户列表信息。

异常过程:

(5)用户填写的ID或密码与数据库中的纪录不匹配,客户端提示登录失败。

(6)客户端设置的服务器地址或端口有误。

(7)服务器未启动或出现异常。

3.2.3一对一聊天

需求描述:用户可选择聊天室的在线用户列表中其他用户聊天。并且对方有消息提示,双方发送的信息对于聊天室的其他用户是不可见的。

执行者:用户

前置条件:用户登录成功,聊天的对方在线

后置条件:无

正常过程:

(1)客户端与服务端建立通讯

基于JAVA聊天室的设计与开发9

(2)客户端将用户发送的信息打包传送给服务端

(3)服务端进行数据分析,查找目的用户的ID,并将用户的信息传给目的用户

(4)目的用户收到服务器的信息后,正确的显示并保存

异常过程:

(5)客户端与服务端断开连接,客户端提示信息发送失败。

(6)客户端发送的聊天内容包含不合法的字符

3.2.4发送表情

需求描述:用户的聊天内容可以是表情图片

执行者:用户

前置条件:用户可以正常聊天

后置条件:无

正常过程:

(1)客户端与服务端建立通讯

(2)客户端将表情所表示的信息传送给服务端

(3)服务器端进行数据分析后,查找目的用户的ID,并将所处理的信息传给目的用户,目的用户端通过本地文件将信息翻译成表情并正确显示在显示窗体中。

异常过程:

(1)客户端与服务端断开连接,客户端提示服务器异常。

(2)客户端发送的表情信息不正确或本地文件不存在异常

3.2.5用户退出

需求描述:用户在正常情况下退出聊天室

执行者:用户

前置条件:用户成功登录聊天室

后置条件:无

正常过程:

(1)向服务器发送用户登出消息

(2)服务器进行用户退出的数据处理

(3)服务器向聊天室其他用户发送登出消息

(4)刷新其他在线用户的用户列表信息

3.3质量性能需求

(1)容错性需求:

当出现代码异常时,出现正确的提示,不会影响整个系统的运行。用户之间信息传

10

3需求分析

输不会因为数据封装问题出现丢失或乱码。因用户的误操作产生的异常应做出及时的处理或信息提示。

(2)稳定性需求:

软件应正常完成所有功能需求。服务器端应长时间运行无故障,故障修复时间一般控制在3小时内,除非出现恶性攻击、病毒破坏、系统资源不足、硬件故障、操作系统或数据库系统崩溃网络中断等情况,要求系统连续运行一周,不允许出现内存泄露。要求系统可以承受告警风暴和大数据量的冲击,不出现内存溢出等现象。

(3)软件设计需求:

要确定合适的模块粒度,各模块之间要求松耦合,高内聚;从而使整个系统的可靠性和稳定性得到提高,并且便于系统维护,和新模块的添加。

安全性:安全性是防止网络方面的攻击。

扩展性:系统建成后,应在现行系统上不需要做大的改动或不影响整个系统结构,就可以增加功能模块,这就必须在系统设计时留有接口,使其具有可扩展性和维护性。

易用性:系统操作的界面必须简洁、操作方便易用、设计合理。

基于JAVA聊天室的设计与开发11

4概要设计

4.1系统的代码结构

本系统的原程序几乎全部有代码构成,一个可分为四个部分,Server、New、Register 和MainWin。用其中的两个表qq和friend来存取程序所用到的一些信息。服务器端用Server来执行,客户端用New来执行,其它的两个类都是被调用的。下面我就对各个部分进行一下详细说明。

4.2主程序类的设计(MainWin类)

本部分是整个系统中最大的部分,但它们并不被直接执行,而是通过别的类来调用。它的主要作用是桥梁作用,里面定义的都是监听事件,当客户端要做某种操作时都可以被该类中相应监听事件所捕捉,然后监听事件对所捕捉到的客户端的操作进行相应的处理。该部分能实现好友查找,建立创建列表类,处理列表类和发送信息类来组成。(1)创建列表类

这个类包括好友列表和用户的功能列表。这两个列表的布局是一样的,都是空布局,然后一个一个的把控件添加上去,每添一个都要把坐标值付给主容器即主窗体,以便在相应的位置上显示这个控件。

(2)查找好友类

查找好友实际上就是要对数据库进行查询操作,其实现方法是通过Server类来做的。通过数据库的查询可以直接显示出其他用户的呢称,性别和所在省份。

(3)收发信息类

本系统主要部分尤其是难点都在网络传输上,所以发送信息部分就比较主要,它可以说是这个程序的一个标识。

发送信息是通过UDP协议直接向其他用户发送出去的,接收信息是在MainWin类里,用多线程里的无限监听方法,随时等待接收其他用户传来的信息。

4.3多线程的设计

服务器多线程详细设计:

主服务器类调用ServerThread类来实现服务器端的多线程,而每个ServerThread实体就是一个单独的线程,即对应于客户端连接请求响应的线程。服务器端总有一个线程在指定的端口等待客户的连接信息,即使用ServerSocket s=new ServerSocket(8080)语句在8080端口创建套接口;当有客户端申请连接时使用new ServerThread(socket)语句

12

4概要设计

创建一个新的线程来和客户端建立连接。

ServerThread类的构造,首先创建ServerThread(Socket s)线程的构造函数再通过Socket=s来取得ServerThread(Socket s)的传递函数,同时使用BufferedReader(new InputStreamReader(Socket.getInputStream()))来创建。最后使用start()函数启动这个线程;使用run()来监听已经连接的线程。

客户端的多线程设计:

客户端的多线程设计和服务器端的不同,客户端是用多线程里的无限监听方法,随时等待接收其他用户传来的信息。当然客户端是调用Thread类来实现多线程的,用run()方法来提供监听,然后创建一个异常来处理当有好友连接时出现的各种情况,如,好友上线,好友下线,有好友添加你为好友,有好友给你发送消息等等。

4.4服务器端的设计 (Server类)

服务器的工作主要是处理客户端与数据库的数据传递。一方面要对客户端提出的申请做出应答,另一方面要对数据库进行相应的操作。所以,与数据连接的语句全在Server 里,这样无论对调试还是运行都比较方便。

但Server类主要处理这些连接工作,对数据的具体操作几乎没有,能看到的只是在DOS界面的一些文字显示而已。例如,申请号码成功就要是要在Server端显示出申请成功,并显示出所申请的号码;添加好友时要显示好友的号码,并显示是否添加成功。

Server类主要是对客户端提出的申请做出回应,有login登录,new新建,find查找好友,friend读取好友资料,addfriend添加好友,delfriend删除好友,logout退出程序,getwhoaddme上线的时候通知好友。

由于Server只需处理客户端的申请和连接数据库,就没有必要在用窗体来显示了,所以我只把服务器端的响应在DOS界面中打印出来,无论是什么样的申请,做出什么样的应答,在服务器端都会有所显示,让用户清楚的看到。

Server端执行的是一个无限监听的过程,它要随时等待客户端说发出的申请。即使完成了一个申请,也要继续等待处理下一个申请,直到Server的退出Server类结构。

功能说明:

Server类是处理客户端和数据的连接工作的,同时也要对客户端的请求做出回应。

start()是线程的启动方法。

run()线程的运行方法,里面是程序的主要部分,用于做出服务器的所有回应。4.5消息通信的设计

本系统中通信主要是通过数据报服务来实现的,Java实现数据报通信的过程除了面向连接的Soket外,还有无连接的数据报Soket。数据报是网络层数据单元在介质上传输信息的一种逻辑分组格式,它是一种在网络中传播的、独立的、自身包含地址信息的

基于JAVA聊天室的设计与开发13

消息,它能否到达目的地,到达的时间,到达的内容是否回变化是不能准确知道的。数据报的通信双方不需要建立连接,对于像聊天通信这些不需要很高质量的应用程序来说,数据报通信是一个很好的选择。

在Java的API函数中有https://www.wendangku.net/doc/bb5632851.html,这样包,此包中有两个类DategramSocket和DategramPacket,他们为应用程序采用数据报通信方式进行网络通信提供了支持,本系统对数据流的操作主要用这两个类。

工作流程是这样的,首先通信双方要建立数据报通信的Socket。可以通过创建DategramSocket来实现它,其构造方法有以下两种:

(1)Public DategramSocket() 构造一个数据报Socket,并使其与本地主机任一可用的端口连接。若打不开Socket则抛出SocketException异常。

(2)Public DategramSocket(int port) 构造一个数据报Socket,并使其与本地连接主机指定的端口连接。若打不开Socket或Socket无法与指定的端口连接则抛出SocketException异常。

然后,处理接受缓冲区的数据,获取服务结果。最后,当处理完缓冲区的数据,可以使用DategramSocket对象close()方法来关闭数据包通信Socket。

14

5系统的实现

5系统的实现

5.1主程序类的实现

主程序是利用MainWin类来实现的,虽然主程序类并不被直接执行但是由于所有的事件处理都在这个类中实现所以主程序类包含大量的成员变量,可分为三大块,第一是保存好友基本信息所有变量的定义,第二是用于临时变量保存临时好友也是用户的基本信息和一些数组的指数,第三是网络相关变量,再加上程序界面变量就是在此系统中用到的所有变

5.2多线程的实现

服务器端的多线程是通过Java提供的API函数中的ServerThread类来实现的,用run()方法来监听线程,当监听到有客户端申请连接时用start()方法来启动一个新线程用来和这个客户端建立连接,同时当有新的客户端申请连接时服务器端会再用start()方法启动一个新的线程再与这个新的客户端进行连接,这样就可以实现了服务器端的多线程。如图5-1所示:

图5-1服务器端多线程

毕业设计-聊天室的设计与实现

编号: 毕业论文 题目:聊天室的设计与实现 院(系): 专业:计算机及应用 学生姓名:唐靖琳 学号: 030111301444 指导教师:李志远 职称:教授 题目类型:理论研究实验研究工程设计工程技术研究软件开发 2012年4月15日

随着Internet的普及,很多人已经不满足于仅仅上网冲浪,而希望能参与其中的开发与研究。怎样做好网页便是人们所渴望的事情。想做好一个网页就要选好工具,我的课题是聊天室的设计与制作。因此,我这里选择的开发软件是Macromedia Dreamweaver 8。Macromedia Dreamweaver 8目前作为最主流的ASP开发工具,它可以将前台界面设计和后天程序设计充分结合,包括asp等。而微软的asp和目前推广的https://www.wendangku.net/doc/bb5632851.html,,是广大网页后台设计师的首选,其应在IIS服务器环境中运行并通过调用ACCESS数据库来实现。 在线聊天室是一种十分普及的动态交互系统,是一种比较直观的且容易接受的交流方式,特别对于刚刚接触的新网民,在线聊天室相对于其他网络交流方式来说有很多不可比拟的优势,比如操作简单,界面简单,信息显示十分直观,十分适合新手;信息的及时传递无延迟,用户可以十分自如地和他人交流而无须等待。这些优点也是聊天室出现这么长时间以来的仍然被广泛使用的原因。至今在线聊天室仍是被很多网站作为吸引网民的利器. 本人制作的是在线聊天室的功能实现,实现用户的登陆和注册,用户在线聊天功能,私聊功能及管理员管理用户功能。聊天的界面有框架构成的。 建设此聊天室,主要目的是为了能够和相同爱好的朋友提供一个实时交流的平台,而不会因为距离而疏远了。 关键词:聊天室;ASP IIS服务器;ACCESS数据库;Macromedia Dreamweaver 8

C+++网络聊天室设计报告和源程序

目录 1.需求分析 (2) 2.相关知识............................................... - 3 -2.1W INSOCK介绍 (3) 2.2MFC类CA SYNCSOCKET和CS OCKET (3) 2.3利用CS OCKET进行有连接的通信 (4) 3.详细设计................................... 错误!未定义书签。 3.1客户端的实现 (4) 3.2服务端的实现 (8) 4.程序运行结果.......................................... - 13 -4.1服务器端 .. (13) 4.2客户端 (13) 5.参考文献 ................................................................................................................... 错误!未定义书签。

1.需求分析 当前是数字信息时代,网络时代,任何一种编辑工具都不能忽视在网络上的应用,并且随着Internet 的普及和宽带技术的成熟,越来越多的用户进入网络世界中享用浏览新闻、查询信息、发送邮件、在线观看电影等服务,享受网络带来的便利和办公的高效,与此同时一个新型的Web应用程序为网民之间提供了一个实时通信的功能和场所,这就是聊天室。 在网络早期就开始盛行,不论是BBS,IRC 都有类似网上聊天室的机制。聊天室为网友提供了实时性对话的渠道,是网络上极为流行的一项服务。 聊天室适用于网上会议或闲聊的一些场合。聊天室为网友提供了较好的交友环境,网友之间相互以文字交谈,在形式上有点类似笔友的性质,却大大节省了书信往返的时间,这也是网上交友之所以如此热门的原因。 聊天室的设计目标 本课题是建立聊天通信模型,设计一个聊天室软件,包括服务器端和客户端,主要功能为: 服务器端功能: 1、初始化socket, 创建服务器端。 2、维护一个链表,保存所有用户的IP地址、端口信息。 3、接受用户传送来的聊天信息,然后向链表中的所用用户转发。 4、接受用户传送来的连接判断命令,并向用户发出响应命令。 客户端功能: 客户端界面上的两个文本框,一个用于显示接受的聊天信息,一个用来接受用户输入的聊天信息。当按下“发送”按钮时将信息发送给服务器。 通过本课题的毕业设计,可以比较深入的了解和掌握WINSOCK控件基本属性、方法和事件,理解网络聊天通信的概念,输控制协议(TCP)进行数据交流,初步掌握网络聊天通信程序的设计方法。并能巩固和扩展大学期间的学习内容,进行项目的设计开发训练,更好的适应社会的需求。

聊天室系统设计报告

青岛科技大学操作系统课程设计 学生班级计算机132班 学生学号1308010204 学生姓名王永远 2016 5 18 ______年 ___月 ___日

目录 设计题目:聊天室系统 (3) 一、设计目的及要求 (3) 1.1设计目的 (3) 1.2设计要求: (3) 二、技术背景 (3) 2.1网络编程 (3) 2.2网络通信 (3) 2.3 Socket (3) 2.4 TCP传输 (4) 2.5 Java的多线程机制 (4) 三、需求分析 (4) 3.1客户端 (4) 3.1.1登录 (4) 3.1.2多人聊天 (4) 3.1.3单人聊天 (5) 3.2服务器端 (5) 四、总体设计 (5) 4.1设计思想流程图 (5) 4.2设计思想分析 (6) 五、详细设计 (6) 5.1客户端设计 (7) 5.1.1登录界面 (7) 5.1.2聊天室界面 (7) 5.1.3单人聊天界面 (7) 5.2服务器端设计 (8) 六、系统测试 (8) 6.1登录测试 (8) 6.1.1用户名为英文字母 (8) 6.1.2用户名为中文 (9) 6.1.3用户名为标点符号 (9) 6.1.4多个用户有重名 (10) 6.1.5服务器地址不合法 (11) 6.1.6端口号不合法 (12) 6.1.7服务器未开启 (12) 6.2群发消息测试 (13) 6.3私聊测试 (15) 6.4用户列表显示测试 (16) 七、心得体会 (16) 八、参考资料 (16) 九、程序清单 (16)

设计题目:聊天室系统 一、设计目的及要求 1.1设计目的 通过该聊天室系统,掌握网络编程的概念及基于网络的C/S模式软件系统开发,掌握基于TCP 协议的Socket编程,掌握Java的多线程机制。 1.2设计要求: 实现多个用户之间类似于QQ的聊天程序,有聊天界面,多用户之间既可以实现群聊,也可以单独聊天。 二、技术背景 2.1网络编程 就是用来实现网络互连的不同计算机上运行的程序间可以进行数据交换。 2.2网络通信 (1)IP地址:网络中设备的标识,不易记忆,可用主机名 要想让网络中的计算机能够互相通信,必须为每台计算机指定一个标识号,通过这个标识号来指定要接受数据的计算机和识别发送的计算机,在TCP/IP协议中,这个标识号就是IP地址。 (2)端口号:用于标识进程的逻辑地址 物理端口网卡口 逻辑端口我们指的就是逻辑端口 A:每个网络程序都会至少有一个逻辑端口 B:用于标识进程的逻辑地址,不同进程的标识 C:有效端口:0~65535,其中0~1024系统使用或保留端口。 (3)传输协议:通信的规则,常见的有UDP,TCP UDP:将数据源和目的封装成数据包中,不需要建立连接;每个数据报的大小在限制在64k;因无连接,是不可靠协议;不需要建立连接,速度快。 TCP:建立连接,形成传输数据的通道;在连接中进行大数据量传输;通过三次握手完成连接,是可靠协议;必须建立连接,效率会稍低。 2.3 Socket (1)Socket套接字 网络上具有唯一标识的IP地址和端口号组合在一起才能构成唯一能识别的标识符套接字。 (2)Socket原理机制 A:通信的两端都有Socket。 B:网络通信其实就是Socket间的通信。 C:数据在两个Socket间通过IO传输。

JAVA聊天室课程设计报告(含源代码压缩文件)

南京晓庄学院 《JAVA程序设计》 课程设计报告 Java聊天室的设计与实现题 目 姓名:戴佳伟 学号:14552019 班级:14软件工程3班 指导教 王峥 师: 完成时间2016.10.7 成绩: 信息工程学院 2016年6月

目录 1引言.............................. . (3) 1.1 java 聊天室开发背景.................................... (3) 1.1java 聊天室开发的目的和意义........ (3) 1.2完成的主要工作.................... (4) 2 需求分析和总体设计................ (5) 2.1 需求分析与设计思路................ (5) 2.1.1 关键技术说明 .................................... . (5) 2.1.2 需求分析..................... ....................... 6 2.1.3 java 聊天室设计方案与思路 (6) 2.1.4 java 聊天室目录结构说明....... (7) 2.2 java 聊天室功能结构 .................................... (8) 3 详细设计.......................... (10) 3.1 java 聊天室模块实现 .................................... (10) 3.1.1 XX 模块实现.................. ..................... 10 4 java 聊天室运行结果.................................... (13) 5课程设计总结...................... .. (15)

java课程设计报告(java聊天室)

Java聊天室课程设计 一、需求分析 1.1开发背景 在信息化社会的今天,网络飞速发展,人们对网络的依赖越来越多,越来越离不开网络,由此而产生的聊天工具越来越多,类似MSN、QQ,网络聊天时一类的聊天系统的发展日新月异,因此产生了制作一个类似QQ的网络聊天工具的想法,且通过制作该程序还能更好的学习网络软件编程知识。 网络编程的目的就是指直接或间接地通过网络协议与其他计算机进行通讯。网编程中有两个主要的问题,一个是如何准确的定位网络上一台或多台主机,另一个就是找到主机后如何可靠高效的进行数据传输。在TCP/IP协议中IP层主要负责网络主机的定位,数据传输的路由,由IP地址可以唯一地确定Internet上的一台主机。而TCP层则提供面向应用的可靠的或非可靠的数据传输机制,这是网络编程的主要对象,一般不需要关心IP层是如何处理数据的。目前较为流行的网络编程模型是客户机/服务器(C/S)结构。即通信双方一方作为服务器等待客户提出请求并予以响应。客户则在需要服务时向服务器提出申请。服务器一般作为守护进程始终运行,监听网络端口,一旦有客户请求,就会启动一个服务进程来响应该客户,同时自己继续监听服务端口,使后来的客户也得到响应的服务。 1.2设计要求 本课程设计的目标是利用套接字socket()设计一个聊天程序,该程序基于C/S模式,客户机器向服务器发聊天请求,服务器应答并能显示客户机发过来的信息。 1.3设计目的 通过设计一个网络聊天程序,对套接字、数据报通讯、URL、与URLConnectiom的相关知识有详细的了解和充分的认识。能将相关的只是运用到相关的实践中去。 1.4功能实现 聊天室共分为客户端和服务端两部分,服务器程序主要负责侦听客户端发来的消息,客户端需要登录到相应的服务器才可以实现正常的聊天功能。 服务器的主要功能有 1)在特定端口上进行侦听,等待客户连接 2)用户可以配置服务器的真挺端口

网络课程设计实验报告--QQ聊天实现

计算机网络课程设计报告 设计选题网络聊天室 姓名马继鸣 学号 0909090630 完成时间 2012-1-12 一、需求分析

聊天工具大多数由客户端程序和服务器程序外加服务器端,本程序采用客户机/服务器架构模式。通过Java提供的Socket类来连接客户机和服务器并使客户机和服务器之间相互通信,由于聊天是多点对多点的而Java提供的多线程功能。用多线程可完成多点对多点的聊天。 主要有两个应用程序,分别为服务器程序和客户端程序。服务器应用程序主要用于消息转发,以及向所有用户发送系统消息等;客户端应用程序主要用于客户聊天记录的显示和信息输入。采用Client/Server(C/S)体系结构,即客户机/服务器体系结构。聊天服务器专门用于监控用户状态和转发消息,客户端负责接收消息的用户序列和消息文本发送到服务器。该聊天系统实现群聊,用户登陆,退出聊天系统等功能。 二. 设计 1.设计思想: 课程设计中利用JAVA实现基于C/S模式的聊天程序。聊天室共分为服 务器端和客户端两部分,服务器端程序主要负责侦听客户发来的消息,客 户端登录到服务器端才可以实现正常的聊天功能。

2.功能设计 (1)服务器端的主要功能如下。 在特定端口上进行侦听,等待客户端连接。用户可以配置服务端的侦听端口,默认端口为10000. 当停止服务时,断开所有用户连接。 (2)客户端的主要功能如下。 连接到已经开启聊天服务的服务端。 当服务器端开启的话,用户可以随时登录与注销。

用户可以向所有人发送消息。 3.详细设计 聊天室服务器端设计 聊天室服务器中主要的功能文件的功能如下: MyButLis.java 主要用于添加事件侦听和动作处理,具体是服务器按钮中的“终止”“发送”的处理。 public class MyButLis implements ActionListener private MyServe server; private JTextField filed1; public void actionPerformed(ActionEvent e) MyChatSet.java 服务器的线程队列,运行的方法,新增一个用户,则增加一个线程,并可以返回应答消息,给其余用户发送上下线信息,发送聊天信息(群聊私聊虽然已写,但是不知为何没有实现),发送用户列表。关键在于除了线程之外,还定义了传输数据时的协议内容,如何分辨不同的信息,如聊天信息,登陆信息,上下线信息,并把信息完整准确的传递。 public static ArrayList servers=new ArrayList();//线程队列 public static void addThread(MyserThread th) //增加一个服务器线程对象 public static void sendReMess(String type,String state,String s,MyserThread myth)//返回应答信息 public static void SendOSMess(String type,String user)//其他用户上下线信息 public static void SendChatMess(String type,String sender,String reciver,String Mess)//聊天信息 public static void SendList//用户列表 MyCheckTool.java 保存用户的登陆信息,在其中建立一个码表,并且可以判断登陆信息是否合法。 //建立码表,用以保存用户信息 private static Map maps=new HashMap(); public static boolean CheckUser(MyUserInfo user)// 验证用户名

JAVA聊天室系统的设计与实现

目录 第1章绪论- 1 - 1.1论文背景及课题来源 (1) 1.2本课题在国内外的发展状况 (1) 1.3应解决的问题及系统开发意义 (1) 第2章开发工具及相关技术介绍........................................................................................................... - 2 - 2.1J A V A与S OCKET简介 .. (2) 2.2JB UILDER5介绍 (3) 2.3C/S模型介绍 (3) 2.4用J A V A实现S OCKET模型 (4) 2.5J A V A中的线程模型简介 (5) 2.6SQL SERVER2000简介 (5) 第3章系统需求分析............................................................................................................................... - 6 - 3.1系统任务描述. (6) 3.2系统功能分析 (6) 3.2.1 系统的功能需求....................................................................................................................... - 6 - 3.2.2系统数据流图............................................................................................................................ - 7 - 3.2.3系统数据分析............................................................................................................................ - 8 - 3.3系统可行性分析 (9) 第4章系统设计 .................................................................................................................................... - 11 - 4.1系统总体结构设计 (11) 4.2数据库设计 (12) 4.3系统功能模块详细设计 (13) 第5章编码与实现 ................................................................................................................................ - 16 - 5.1系统主要模块代码 (16) 5.1.1启动、停止服务器.................................................................................................................. - 16 - 5.1.2客户端连接服务器.................................................................................................................. - 17 -

在线聊天系统毕业设计论文 (1)

摘要 随着Internet技术的飞速发展,网络已经成为人们生活中不可缺少的一部分,通过聊天室在线聊天已成为网络上人与人之间沟通、交流和联系的一种方式。 为此,越来越多的网站开始提供在线聊天的功能。与此同时,聊天室也以其方便、快捷、低成本等优势受到众多企业的青睐,很多企业的网站中也加入了聊天室模块,以达到增进企业与消费者之间、消费者与消费者之间相互交流的目的。 本文是软件工程在线聊天室系统的开发说明,重点运用软件工程知识对系统进行分析、设计实现和测试的思想的具体描述,其中包括软件生命周期的三个主要方面:软件定义(问题定义、可行性研究、需求分析)、软件开发(总体设计、详细设计、编码、测试)和运行维护。通过实际的运用软件工程知识处理问题,加强程序的规范性、清晰性、可靠性,并且使得程序易于维护。本软件使用JAVA进行编写,具有良好的兼容性且易于实现。聊天室操作简洁容易上手、结构简单、查找方便、实用性强。 关键字:网络、通信、套接字、连接

目录 序言 (3) 第一章 VisualC++及Socket套接字介绍 (5) 一 VisualC++ 介绍 (5) 二 Socket套接字介绍 (6) 第二章软件需求分析 (15) 一系统客户要求 (15) 二系统详细设计 (16) 三系统开发目标 (17) 四系统开发思路 (17) 五需求总结 (18) 第三章系统具体实现 (21) 一概要设计 (21) 二定义服务器端和客户端的通信结构及含义 (22) 三服务器端的实现流图 (25) 四客户端的实现流图 (28) 第四章系统测试 (30) 第五章系统运行和维护 (32) 第六章结束语 (33) 参考文献 (34)

聊天室设计报告

网 络 聊 天 系 统 设 计 报 告 组长:靳子豪 组员:凯强、许玉军、王明明 完成时间:2015年11月3日

一、可行性研究报告 可行性研究报告(ISO标准) 编者说明: 在立项时,应该对项目进行综合分析,探讨项目的经济、社会、技术可行性,从而为决策提供基础。该模板为ISO标准文档模板,其不仅适用于软件项目,对于其它的系统项目也适用。 1.引言 1.1 编写目的 该聊天室项目可行性研究报告是对项目课题的全面考虑,是项目分析员对下一步工作进行的前提,是软件开发人员正确成功开发项目的前提与基础。写可行性研究报告可以使软件开发团体尽可能早的估计研究课题的可行性,较早的认识到系统方案的缺陷,可以少花时间和精力,也可减少成本资金,避免专业性的问题。 1.2 背景 a. 待开发系统的名称:信息交流系统 b 用户:大众 c. 它基于web小浏览器的程序系统的设计与开发, 服务平台:appserv-win 开发语言:PHP 数据库:MY SQL 1.3 定义 技术可行性:分析功能,性能以及限制条件,能否是一个技术上可实现的系统 经济可行性:估计开发费用已及最终从开发成功的系统所获得的收入或利益,衡量比较支出的费用和收到的利益 1.4 参考资料 《软件工程导论》(第6版)清华大学海藩牟永敏编著 可行性研究的前提 2.1 要求 a、聊天室功能 用户的聊天功能,包括数据输入、修改、删除,并要达到界面美观又好、使用方便 b、软件的性能 开发该软件应具有的基本要求与功能是实现用户信息数据包括与用户有关的数据 的管理与操作处理,基于MY SQL的数据库的数据管理使该软件有更优异的性能,软件的基本数据流动为用户数据的输入,用户信息及数据的输出。 c、输出 用户基本信息和聊天容 d、输入 用户根据自身需要,发起聊天 e、安全方面的要求 设置管理员 2.2 目标 该软件的设计目标必须尽量达到人力与设备费用的节省,软件的整个设计过程必须通过生产能力的提高、人员工作效率的提高等等使软件开发成本最小化。 2.3 条件、假定和限制 a、本聊天室建议使用寿命为5-10年 b、法律方面的限制:(1)、严禁危害国家信息安全(2)、严禁损害国家荣誉和利益(3)、严禁传播不良信息(5)、严禁抄袭 2.4 进行可行性研究的方法 成本效益分析、对估算问题的看法、软件的作用围、软件的成本估算、速度安排

聊天室设计报告

聊天室设计报告

————————————————————————————————作者:————————————————————————————————日期: ?

网 络 聊 天 系 统 设 计 报 告 组长:靳子豪 组员:冯凯强、许玉军、王明明

完成时间:2015年11月3日 一、可行性研究报告 可行性研究报告(ISO标准) 编者说明: 在立项时,应该对项目进行综合分析,探讨项目的经济、社会、技术可行性,从而为决策提供基础。该模板为ISO标准文档模板,其不仅适用于软件项目,对于其它的系统项目也适用。 1.引言 1.1 编写目的 该聊天室项目可行性研究报告是对项目课题的全面考虑,是项目分析员对下一步工作进行的前提,是软件开发人员正确成功开发项目的前提与基础。写可行性研究报告可以使软件开发团体尽可能早的估计研究课题的可行性,较早的认识到系统方案的缺陷,可以少花时间和精力,也可减少成本资金,避免专业性的问题。 1.2背景 a. 待开发系统的名称:信息交流系统 b 用户:大众 c.它基于web小浏览器的程序系统的设计与开发, 服务平台:appserv-win 开发语言:PHP 数据库:MY SQL 1.3定义 技术可行性:分析功能,性能以及限制条件,能否是一个技术上可实现的系统经济可行性:估计开发费用已及最终从开发成功的系统所获得的收入或利益,衡量比较支出的费用和收到的利益 1.4 参考资料 《软件工程导论》(第6版)清华大学出版社张海藩牟永敏编著 可行性研究的前提 2.1 要求 a、聊天室功能 用户的聊天功能,包括数据输入、修改、删除,并要达到界面美观又好、 使用方便 b、软件的性能 开发该软件应具有的基本要求与功能是实现用户信息数据包括与用户有关 的数据的管理与操作处理,基于MY SQL的数据库的数据管理使该软件有 更优异的性能,软件的基本数据流动为用户数据的输入,用户信息及数据的 输出。 c、输出 用户基本信息和聊天内容 d、输入 用户根据自身需要,发起聊天 e、安全保密方面的要求 设置管理员 2.2 目标

JAVA课程设计聊天室系统

Java课程设计指导书(学生版初稿) 第二章聊天室系统 目标 2.1 背景介绍 2.1.1 业务背景 2.1.2 技术背景 2.2 需求分析 2.2.1功能需求分析 2.2.2 业务对象分析 2.2.3 验收测试要求 2.3 系统设计 2.3.1 总体设计 2.3.2 详细设计 2.4 系统实现 2.5 小结 2.6 展望

第二章聊天室系统 学习目标: 1、理解基于网络的C/S模式的软件系统结构,掌握网络编程的基本概念。 2、了解Java 的多线程机制,掌握Java多线程技术的应用。 3、熟练掌握基于TCP协议的Socket编程。 4、了解Socket编程的协议约定,掌握简单应用协议的开发。 5、进一步巩固发展团队协作能力。 学习寄语:想必大家都用过QQ,其主要功能就是聊天,是不是很想知道它是如何实现的?本项目就是帮你实现一个简单的聊天系统,当然跟商业项目没法比,但从中你却可以了解这些系统是如何实现的,学到开发类似系统的基础知识和基本技能(基本并不意味不实用)。本章的内容有一定难度(多线程、基于TCP的应用协议编程),所以系统的开发采用了“增量迭代”的开发方式,由简易到繁难,希望你能顺利前行。我们的信念依然是:“不抛弃,不放弃”。你的改变和收获依然是老师真诚的期待,期待你更踏实、更自信。Come on!

2.1 背景介绍 2.1.1 业务背景 随着网络社会的不断发展,具有相同兴趣的网民需要互相远程交流,既要能省钱又要能即时交互,电话太贵、email又嫌慢,所以开发一个类似QQ 的及时通讯系统就变得非常有意义了。“Happy Chat”聊天系统应运而生,它较之QQ 的唯一好处是自主开发,用的放心,更适合在局域网内使用。它提供的功能远不如QQ丰富,但应具有如下功能:(1)与聊天室成员一起聊天;(2)可以与聊天室成员私聊;(3)用户注册、登录;(4)服务器监控聊天内容;(5)服务器发送通知;(6)服务器踢人;(7)保存服务器日志。(8)保存用户聊天信息。 2.1.2 技术背景 本系统要求使用java技术开发,使用文件保存数据,集成开发环境使用eclipse。开发者应有java程序设计语言、SWING基本GUI组件、多线程、文件使用、socket编程、使用eclipse的基本知识和技能。系统采用两层C/S体系结构,C端负责通过GUI与客户交互,实现注册、登陆、收发信息、退出等功能;S端是聊天系统的应用服务器,主要有处理用户注册、登录、用户收发信息、用户退出等功能。C端和S端是通过网络交互的,其基本原理如图1所示: 图1 C/S通讯基本原理图

JAVA聊天室实验报告

JA V A聊天室实验报告 姓名:马琳越 班级:131114 学号:13111368 日期:2014年4月23日

目录 目录 (2) JA V A程序课程设计任务书 (3) 摘要 (4) 第1章引言 (5) 第2章聊天室系统的设计 (7) 第3章界面设计 (11) 第4章总结 .................................................................................. 错误!未定义书签。

Java聊天室的设计任务书 1.主要内容 用JA V A实现基于C/S模式的聊天室系统。聊天室分为服务器端和客户端部分,服务器端程序主要负责侦听客户端发来的信息,客户端需要登陆到服务器端才可以实现正常的聊天功能。 2.具体要求 A.服务器端主要功能 (1).在特定端口上进行侦听,等待客户端连接。 (2).用户可以配置服务器端的侦听端口,默认端口为8888。 (3).向已经连接到服务器端的用户发送系统消息。 B. 客户端主要功能 (1).连接到已经开启聊天服务的服务器端。 (2).用户可以配置要连接的服务器端的IP地址和端口号。 (3).用户可以配置连接后显示的用户名。 (4).用户可以向所有人或某一个人发送消息。 3.主要参考文献及运用工具 (1)Bruce Eckel 著Thinking in Java ,李刚著疯狂Java讲义 (2)使用技术:Java 使用开发工具:Eclipse

摘要 在网络越来越发达的今天,人们对网络的依赖越来越多,越来越离不开网络,由此而产生的聊天工具越来越多,例如,国外的ICQ、国内腾讯公司开发的OICQ。基于Java网络编程的强大功能,本次大作业要求使用Java编写一个聊天系统。 一般来说,聊天工具大多数由客户端程序和服务器程序外加服务器端用于存放客户数据的数据库组成,但是,由于自己数据库知识的部分遗忘,本程序未连接数据库,采用客户机/服务器架构模式,通过Java提供的Soket类来连接客户机和服务器并使客户机和服务器之间相互通信。 本系统建立在JAVA平台上,系统的设计使用了面向对象技术和面向对象的设计原则。系统采用C/S结构,客户端与客户端以及客户端与服务器端之间通过Socket传送消息。使用JAVA语言编写,开发工具采用Eclipse。服务器端设计与实现过程中,采用了多线程技术,可以在单个程序当中同时运行多个不同的线程,执行不同的任务。大大增强了程序对服务器资源的利用。 聊天系统完成后将可进行多人对多人的聊天,对好友进行添加、删除,对新用户的注册,发送消息、接受消息等等功能。

毕业设计-基于ASP的聊天室设计与实现

目录 摘要 (Ⅲ) ABSTRACT (Ⅳ) 引言 (Ⅴ) 第一章系统概述 (1) 1.1系统说明 (1) 1.2系统功能简介 (2) 第二章开发环境介绍 (3) 2.1系统运行环境配置 (3) 2.2ASP简介 (3) 2.2.1 ASP的优点 (4) 2.2.2 ASP的6大对象 (5) 2.2.3 ASP的使用环境 (6) 2.2.4 配置MicrosoftIIS (7) 2.2.5 ASP的脚本语言 (8) 2.3动态网页开发工具D REAMWEAVER MX简介 (9) 2.4系统数据库介绍 (10) 2.4.1 数据库的概念 (10) 2.4.2 ACCESS简介 (10) 2.5“结构化查询语言”(SQL)简介 (11) 2.6ASP与ADO配合工作 (12) 第三章数据库设计 (15) 3.1数据表的介绍 (15) 3.2数据的加密介绍 (18) 3.3建立数据库连接 (18) 第四章总体设计 (20) 4.1用户模块介绍 (20) 4.1.1 服务器及客户端的功能可划分为以下模块 (20) 4.1.2 总体流程图如下 (21) 第五章详细设计 (22) 5.1新用户注册 (22) 5.2聊天室初始化 (22) 5.3用户登陆 (25) 5.4用户帮助 (26) 5.5留言板 (28)

5.6聊天室主页面 (31) 第六章软件测试 (33) 6.1软件测试的重要性 (33) 6.2测试 (33) 6.3步骤 (33) 6.4C HAT 主窗体模块测试 (35) 结束语 (36) 致谢 (37) 参考文献 (38) 程序附录 (39)

摘要 系统主要采用Microsoft ASP作为开发工具,使用Dreamweaver MX 对系统进行编辑,并利用ASP技术与服务器的Access数据库连接。系统采用Microsoft Access作为数据库后台,使系统开发更为简单、方便, 利用ADO数据库访问技术实现对数据库的各种管理操作,实现前台界面设计和后台数据库的设计,并能轻松的实现聊友资料注册,修改,管理员登入,聊天室管理,权限管理,在线名单列表和信息发送,另外还有聊友登入统计情况等功能。系统是基于ASP开发设计的,其主要特性是能动态完成信息的传递,且具有高效的交互性,更有效的处理客户请求, 且具有更简单, 更方便的数据库访问方法, 易于维护和更新。这种技术程序由文本, HTML标记和脚本组合而成, 论文会介绍其运行所需环境及其工作流程和各个功能控件的工作原理。 关键词: 聊天室,对象,Access,IIS

Java聊天室系统程序设计实验报告材料

Java聊天室系统程序设计 实验报告 院(系):信息与通信工程系 专业:计算机应用技术 班级: 学号: 姓名: 指导老师: 2013/6/8

目录 第一部分:系统设计总述 (2) 1.设计目的: (2) 2.设计总体要求: (2) 3.实现目的: (2) 第二部分:系统需求分析 (3) 1.系统任务描述 (3) 2.系统功能分析 (3) 3.系统可行性分析 (3) 第三部分:系统设计 (4) 1.系统总体结构设计 (4) 2.系统主体的处理流程 (5) 3.系统流程逻辑 (5) 第四部分:代码分析 (6) 1.服务器端部分代码 (6) 2.客户端部分代码 (6) 第五部分:系统的具体实现 (6) 界面设计 (6) 第六部分:小结 (10) 第七部分:参考文献 (10)

1.设计目的: 1.在开发技术和过程中,能够充分学习和使用JAVA的技术,进一步培养学生面向对象程序 设计的思想,加深对面向对象程序设计特性的理解。 2.学会Java程序开发的环境搭建与配置,并在实际运用中学习和掌握Java程序开发的全 过程。 3.进一步熟悉掌握Java程序设计语言的基础内容,如用户图形界面设计、文件和网络输入 输出流编程、Java数据库编程等。 4.通过亲自动手写程序,一方面拓展知识面,一方面锻炼调试能力。 2.设计总体要求: 1.问题的描述与程序将要实现的具体功能。 2.程序功能实现的具体设计思路或框架,并检查流程设计。 3.代码实现。 4.程序测试。 5.设计小结(包括) 3.实现目的: 本软件是一个实用聊天程序。项目要实现以下目标: 1)建立服务器端和客户端并进行连接; 2)利用线程设计结构合理,运行效率较高的聊天室; 3)实现写消息,发消息,回复,查看聊天记录等功能;

Java聊天室课程设计报告

UML课程设计 题目网络聊天程序开发设计与实现 学号:201515614376 姓名:卫国辉 指导教师: 完成时间:2017年 12月

目录 1.摘要 (2) 2.绪论 0 2.开发环境 0 3.需求分析 (1) 3.1程序简介 (1) 3.2程序功能 (1) 4.系统设计 (2) 4.1概要设计 (2) 4.2详细设计 (2) 5.测试 (7) 6.结论 (9) 参考文献 (10)

摘要 本次训练主要是考查了对JA V A程序设计的综合运用,设计一个Socket 通信的聊天程序,用户可以通过程序进行聊天通信,但不支持用户自定义表情及图片的发送。 本程序设计也用到了一些相关的标准Java的类,给程序设计带来了许多的方便,但用那些要切记加相应的类的包,还有一些构造方法和个别接口方法。 本程序可以实现用户之间的一些简单的交互,虽然功能较少,但是我想通过这次程序设计来熟悉并且学习更多关于JA V A编程的东西,来便于以后可以使用。 关键词:java聊天

1.绪论 对于一个选择网络编程的人来说,必须要有足够的细心和耐心,因为编程一般来说是很枯燥的乏味的,而且程序会越来越复杂,它所用到的符号、标记很多,所以不能出点小错误的。还有,我们不能只是看程序,要学会把自己学的自己拿去实践,自己去编一些程序,培养自己的动手能力,掌握一些编程技巧,熟练运用自己学到的理论知识,这样在以后才能开发出属于自己的东西。 如今,随着科学技术的发展,计算机已成为了我们生活中必不可少的设备了,而掌握计算机知识和运用,又成了我们每一个人的目标了。现在IT行业的飞速发展,无不应正了以前、现在、将来计算机行业都是科学发展的主导行业。而这些基本上都建立在程序上的,所以程序员对计算机行业来说,可想而知有多么的重要了,他们所付出的每一滴汗水都将推动这个行业的发展。 现在我就用JA V A语言编写一个简单的程序——Java聊天程序。将所学的基本知识用到其中去,这里包括了构造方法,创建图形界面,引用类等等。这不仅能锻炼我的实践能力,同时也进一步复习和巩固了我所学的理论知识。对以前没有学好的还有督促和促进作用。而且,根据需要,还可以了解一些课外的知识。增加自己的知识面。 2.开发环境 在开发此聊天程序时,该项目所使用的软件开发环境如下: 操作系统:Windows 7 开发工具:eclipse3.2及其VE插件

基于局域网的即时通讯聊天室系统毕业设计

本科毕业设计(论文) 题目基于局域网的即时通讯聊天室 系统设计 部系地方生部 专业电子信息工程

基于局域网的即时通讯聊天系统的设计 摘要 随着计算机科学和Internet 的飞速发展, 网上聊天已成为人们相互交流的一种方式, 与E-mail、相比, 聊天服务更具有实时性和有效性。 本论文提出一个运行于VC平台上的局域网聊天软件的解决方案。该聊天软件包括服务器端和客户端两个模块,客户端通过服务器端进行通信。服务器端模块主要实现了服务器的配置和数据的传递;客户端模块主要实现了用户注册、登录、文字聊天等功能。该软件采用异步套接字的非阻塞模式,并实现对象的序列化和MFC文件对象实现数据的保存。 该软件能够帮助企业在局域网搭建起自己的聊天系统,避免企业部员工使用类似QQ等软件泄露部信息,但是该软件只实现了聊天的基本功能,还有很多不足之处需要改进。 关键字:局域网、即时通信、套接字、异步模式

An instant messaging chat system based of LAN Abstract Along with the high-speed development of the computer science and Internet, chatting on line has been an important method in our communication. Comparing with E-mail and telephone, the chat-line service is more real-time and effective. This thesis proposes a solution of a LAN chatting software based on C++ language, which is operated on the VC platform. This chatting software includes two modules: the server and the client, which can communicate with each other. The server module mainly completes the sever device’s configuration. The client module mainly completes the users’ login, registration, instant messaging and so on. The software used model of non-blocking asynchronous socket , And to achieve the object and MFC series documents the preservation of the object data. This software can help the company to build their own chatting system in the local area network, and it also can avoid the staff

聊天室程序设计报告

实验5 掌握简单的网络通讯技术 实验6 掌握基于典型协议的的网络通讯技术 一实验目的 1.熟悉Socket的通讯机制,了解网络程序的设计方法。 2. 熟悉典型协议的通讯机制,掌握基于它们的网络系统设计方法。如TCP、UDP。 二实验环境 1.Windows7 2.Visual C++ 6.0 三实验程序设计 1.实验原理 1.C/S模式 C/S模式是指一个服务器同时为多个客户端服务。并发性是C/S模式的的基础,正是由于并发性的支持,多个客户端能够获得同一种服务,而不必等待服务器完成对上一个请求的处理。 在C/S模式中,当请求到达服务器时,服务器将它交给一个控制线程,它能与已有的线程并发的执行。 在设计并发服务器时,一般服务器代码由两部分组成,第一部分代码负责监听并接收客户端的请求,还负责为客户端请求创建新的服务线程;另一部分代码负责处理单个客户机请求,如与客户机交换数据,提供具体服务。 下图所示为服务器创建多个线程来为多个客户机服务。 2.基于TCP的socket通信 服务器与客户端是通过套接字来进行通信的。 在基于TCP的网络通信程序中,首先服务器端通过socket()函数创建套接字,然后通过bind()函数来命名套接字,调用listen()函数开启服务器端的监听。接着执行accept()函数来接收客户的连接,服务器阻塞等待客户连接请求,直到有客户请求连接。 客户端创建套接字,接着通过connect()函数请求连接服务器,连接成功后,就可以与服务器进行通信了。 服务器与客户机通过send()各recv()调用来进行信息的发送和接收。只有当有信息可接收时,recv()才返回,否则将阻塞。

相关文档
相关文档 最新文档