JAVA 网络聊天室的设计和实现

JAVA 网络聊天室的设计和实现
JAVA 网络聊天室的设计和实现

基于网络的聊天室系统的设计开发

摘要

信息时代的到来引发了一场知识和信息革命,计算机和现代网络技术的广泛应用极大

地促进了社会经济的发展,同时也带来了一些新兴产业的发展,比如聊天室。聊天室已经

慢慢成为人们生活的一部分,呈现出良好的势头和广阔的发展前景。

本文主要介绍了以当前流行Web设计语言Java Server Page-JSP语言开发的一个简单

的网络聊天室。该小聊天室重要是为许多喜爱上网聊天的朋友开发设计的,希望能在现有

的众多聊天室中给大家多一种的选择。和许多大型的网络聊天室相比该小聊天室比较简单,但能实现聊天的基本功能,点对多聊天,点对点聊天,传送文件等。本聊天室主要由登录

页面、验证页面、聊天室页面、离开页面、查看聊客页面、帮助页面等页面构成。整个设

计简洁明了、实用,使用简单。

关键字:Web 设计语言、聊天室、Java sever Page-Jsp语言

The design and development of chatroom system based on network

Abstract

The information age arrival has initiated a knowledge and information revolution, widespread application of the computer and the modern network technology enormously promoted the social economy development, at the same time has also brought some emerging industrial development, for instance chatroom. Chatroom has already become a part of people's life slowly, presented the good tendency and the broad prospects for development.

A chatroom was introduced by a popular Web's design language Java Server Page-JSP's language presently in this context. This is a chatroom that designed to many friend who likes chatting online.The hope can give everybody in the existing multitudinous chatroom more than one kind of choices. Compared with many large-scale networks chatrooms this small chatroom is quite to be simple, but can realize the basic function which the dotted pair is chatted more, point-to-point chats,transmission document and so on. This chatroom mainly consist with registering the page, confirming the page, the chatroom page, leaving the page, the examination of chating guest page, helping page constitution and so on. Entire design Concise, practical and the use is simple.

keyword : Web's design language、chatroom、Java Server Page-JSP's language

目录

ABSTRACT ................................................................................................................................ - 1 - 第一章概述 ....................................................................................................................... - 3 -

1.1聊天室系统的基本概念................................................................................................ - 3 -

1.2 开发聊天室系统的意义 .............................................................................................. - 3 -

1.3本次毕业设计所要完成的主要工作............................................................................ - 3 -

1.4小结 ............................................................................................................................... - 3 - 第二章相关技术介绍 ......................................................................................................... - 4 -

2.1 JSP技术简介 ................................................................................................................ - 4 -

2.1.1 JSP与其他语言的比较...................................................................................... - 5 -

2.1.2 JSP技术的未来 ................................................................................................. - 7 -

2.2 数据库简介 .................................................................................................................. - 8 -

2.3小结 ............................................................................................................................. - 10 - 第三章需求分析 ............................................................................................................... - 11 -

3.1 以往聊天室系统的缺陷 .............................................................................................- 11 -

3.2 聊天室系统作为网络通讯工具的作用......................................................................- 11 -

3.3 现行聊天室系统的功能需求......................................................................................- 11 -

3.4 小结 .............................................................................................................................- 11 - 第四章聊天室系统的总体设计 ........................................................................................... - 12 -

4.1聊天室结构分析 ......................................................................................................... - 12 -

4.2网络聊天室的设计与实现.......................................................................................... - 12 -

4.3 小结 ............................................................................................................................ - 20 - 第五章总结与展望 ......................................................................................................... - 21 - 致谢 ........................................................................................................................................... - 22 - 参考文献 ................................................................................................................................... - 23 -

第一章概述

1.1聊天室系统的基本概念

聊天室系统是一个通过国际互联信息网络进行多人通讯的一个系统。该系统在一定网络通讯及高级语言程序设计和JSP应用程序设计的基础上,利用计算机通讯原理,形成一个聊天室平台,使得用户在进入这个聊天室系统平台的同时,可以通过网络在线与距离遥远的其他一位或多位用户进行信息交流。

聊天室主要分为WebChat、BBSChat两种。BBSChat是基于Telnet的Tcp协议,是BBS的附设功能,需要客户端Telnet程序。WebChat则采用浏览器方式,实际上是一个多人共同使用的CGI程序。其基本原理是把每个用户的发言通过浏览器传给系统,再由系统收集处理后分发给特定用户。

WebChat一般采用Server Push或Client Pull技术。两种技术的区别在于使用不同的方式将数据分发给用户,Server Push是由服务器将数据以多重MIME编码,发送给(push)使用者端,目前较少网站使用这种方式。Client Pull则是用户从服务器接收(pull)所要的数据

1.2 开发聊天室系统的意义

在这个信息极其发达的时代,我们目前可以用来进行信息交流的方法也有非常多,比如电报、电话、电子邮件、OICQ等等通讯手段,但是这些或者不方便或者有局限性或者有费用的问题,比如电话就是属于费用比较高的一种方式,而且一般情况下不能进行多人会谈,只能2方通话,那么一个需要几个人一起讨论的会议就不能举行,一般情况下都需要花费大量的人力物力把这几个人聚集到同一地点才能进行讨论。非但费时费力费钱而且效果也不一定很好。电子邮件则不是一种及时联系的手段,需要一定时间才能到达,只能作为一种辅助交流的手段。但是,聊天室这个就能很好的解决这个问题,我们不需要聚集在同一地点,各自在不同的地点就可以在聊天室中发言,大家互相讨论。而且好的聊天室还有各种表情符号等可以加强我们的表达。而且费用低廉,信息交流速度快,只有这样,才能在这个涌动的社会中加强联系,创造出更多的财富。

1.3本次毕业设计所要完成的主要工作

通过所学知识,根据网络聊天室系统的发展动态,结合自己个人的兴趣爱好,建立一个功能丰富,操作简便快捷的通用网络聊天室系统。

本文的主要安排了对聊天室技术的一些相关介绍,比如JSP技术,数据库。接着是关于对聊天室系统的分析和设计,通过对聊天室的结构的分析来设计聊天室系统,并根据自己的兴趣和想法来丰富聊天室的功能。

1.4小结

本章首先介绍了网络聊天室系统的相关概念,通过比较当今社会进行信息交流的一些工具,体现出网络聊天室系统带来的好处。最后提出本次毕业设计所要完成的工作。本章将为后面网络聊天室系统的开发提供一些思考方向。

第二章相关技术介绍

2.1 JSP技术简介

现在虽然有多种技术可用于生成为动态内容提供服务的 web 应用程序,但真正受到开发界青睐的是 JavaServer Pages TM(JSP TM)。这并非没有充分的理由。JSP 不仅拥有跨平台和跨 Web 服务器支持,并且将服务器端 Java 技术的功能与静态 HTML 页的“所见即所得”功能有效地结合了起来。作为Java平台的一部分,JSP的脚本语言采用Java,拥有Java编程语言“一次编写,各处运行”的特点,完全继承了Java的所有优点。而且通过开发定制化标示库,JSP技术是可以扩展的,使Web页面开发人员能够使用熟悉的工具和如同标识一样的执行特定功能的组件来工作。

Java Servlet 简介

Java servlet是基于服务器端的编程,可以说Servlet 是基于服务器上的Applet 编程,JSP 技术主要就是用在网络编程上所以也是基于Servlet 的。Java servlets 提供了一项协议和平台无关的方法来创建基于 web 的应用,Servlets 在web 服务器上运行,而且不需要图形用户接口(GUI)这和 applet 不同,在 web 服务器上运行的 servlet 引擎通过请求和响应来交互信息客户端程序,可以用任意语言编写访问web 服务器,同时生成请求,请求然后由 web 服务器上的 servlet 引擎处理处理完毕后,servlet 引擎处理把响应返回给 servlet ,然后由 servlets 把响应结果传给客户端。Java Servlets 是运行在请求/面向请求服务器上的模块,比如一个Java-enabled web 服务器, 和类似这样的延伸场合。例如, 一个Java servlet 可以从一个HTML 订单表中获取数据,然后用一些商业上的算法来更新公司相应的订单数据库,也就是说Java servlet 能够象CGI 脚本一样扩展WEB 服务器功能。但是servlet 占用很少密集资源,有很多用CGI 脚本编制的一些站点由于访问量剧增,性能迅速下降这是CGI 脚本一个缺点有关。同时由于Java servlet 是用java 编写的,因此是跨平台的,Java Servlet 可以相当有效地替代CGI 脚本,它可以方便地产生容易编写,而且运行快的动态文本可以很方便的调试寻找出程序问题. Servlet 程序是用Java Servlet API 开发的, astandard Java extension. 但不是Java 核心框架的一部分。

Java Servlet 的优点

1. 程序执行的效率比较高

因为Java Servlet 不是直接在cpu 上执行,而是在Java 虚拟机上运行,而且Java Servlet和Java 程序一样是半编译半解释的,在执行前要先生成字节码这使得Java Servlet 程序的运行效率得以提高。

2. 与平台无关

Java servlet 程序写一次后就能到处运行,不会受运行平台的影响这都是因为Java 语言本身就具有与平台无关的优点。Java Servlet 采用的是Java 语言所以也具有这种优点。

3. 标准API

Java Servlet 程序有一个标准API ,保证了程序开发的一致性。Servlet API 与协议无关,因此它能被嵌入各种类型的服务器中,Servlet API 还具有可扩展性可以通过继承机制安全方便的增加它的功能。Java Servlet 与CGI 的功能差不多,但Java Servlet 用起来比CGI 简单,不必像CGI 一样要求程序员有处理传递参数的知识,还有Java Servlet 的程序代码一般来说比CGI 要简单一些。

2.1.1 JSP与其他语言的比较

除JSP 外目前最常用的三种动态网页语言ASP(Active Server Pages)和PHP(Hypertext Preprocessor)。

ASP 全名Active Server Pages 是一个WEB 服务器端的开发环境利用它可以产生和运行动态的交互的高性能的WEB 服务应用程序ASP 采用脚本语言VBScript Java script 作为自己的开发语言。

PHP 是一种跨平台的服务器端的嵌入式脚本语言它大量地借用C,Java 和Perl 语言的语法, 并耦合PHP 自己的特性,使WEB 开发者能够快速地写出动态生成页面它支持目前绝大多数数据库。

JSP ASP 和PHP 三者都提供在HTML 代码中混合某种程序代码、由语言引擎解释执行程序代码的能力。但JSP 代码被编译成 Servlet 并由Java 虚拟机解释执行,这种编译操作仅在对JSP 页面的第一次请求时发生。在ASP 、PHP、 JSP 环境下,HTML 代码主要负责描述信息的显示样式,而程序代码则用来描述处理逻辑。普通的 HTML 页面只依赖于Web服务器,而ASP、 PHP 、JSP 页面需要附加的语言引擎分析和执行程序代码。程序代码的执行结果被重新嵌入到HTML 代码中,然后一起发送给浏览器。ASP、 PHP、 JSP 三者都是面向Web 服务器的技术,客户端浏览器不需要任何附加的软件支持。

下面分别列出三种语言的技术特点以做比较。

一、ASP 的技术特点:

1. 使用VBScript、 JScript 等简单易懂的脚本语言,结合HTML 代码,即可快速完成网站的应用程序。

2. 无须compile 编译,容易编写,可在服务器端直接执行。

3. 使用普通的文本编辑器,如Windows 的记事本,即可进行编辑设计。

4. 与浏览器无关(Browser Independence), 用户端只要使用可执行HTML 码的浏览器,即可浏览Active Server Pages 所设计的网页内容。Active ServerPages 所使用的脚本语言(VBScript 、Jscript)均在WEB 服务器端执行,用户端的浏览器不需要能够执行这些脚本语言。

5.Active Server Pages 能与任何ActiveX scripting 语言相容。除了可使用VB Script 或JScript 语言来设计外,还通过plug in 的方式,使用由第三方所提供的其他脚本语言,譬如REXX、 Perl 、Tcl 等。脚本引擎是处理脚本程序的COM(Component Object Model) 物件。

6. 可使用服务器端的脚本来产生客户端的脚本。

7. ActiveX Server Components(ActiveX 服务器元件 )具有无限可扩充性。

二、PHP 的技术特点:

1 数据库连接。

PHP 可以编译成具有与许多数据库相连接的函数。PHP 与MySQL 是现在绝佳的组合。你还可以自己编写外围的函数去间接存取数据库。通过这样的途径当你更换使用数据库时,可以轻松地更改编码以适应这样的变化。PHPLIB 就是最常用的可以提供一般事务需要的一系列基库。但PHP 提供的数据库接口支持彼此不统一,比如对Oracle, MySQL ,Sybase 的接口,彼此都不一样这也是PHP 的一个弱点。

2 面向对象编程。

PHP 提供了类和对象。基于web 的编程工作非常需要面向对象编程能力。PHP 支持构造器、提取类等。

三、JSP 的技术特点:

1.将内容的生成和显示进行分离。

使用JSP 技术,Web 页面开发人员可以使用HTML 或者XML 标识来设计和格式化最终页面。使用JSP 标识或者小脚本来生成页面上的动态内容。生成内容的逻辑被封装在标识和JavaBeans 组件中,并且捆绑在小脚本中,所有的脚本在服务器端运行。如果核心逻辑被封装在标识和Beans 中,那么其他人,如Web 管理人员和页面设计者,能够编辑和使用JSP 页面,而不影响内容的生成。

在服务器端,JSP 引擎解释JSP 标识和小脚本,生成所请求的内容(例如,通过访问JavaBeans 组件,使用JDBCTM 技术访问数据库,或者包含文件),并且将结果以HTML 或者XML 页面的形式发送回浏览器。这有助于作者保护自己的代码,而又保证任何基于HTML 的Web 浏览器的完全可用性。

2.强调可重用的组件。

绝大多数JSP 页面依赖于可重用的,跨平台的组件(JavaBeans 或者Enterprise JavaBeans组件)来执行应用程序所要求的更为复杂的处理。开发人员能够共享和交换执行普通操作的组件,或者使得这些组件为更多的使用者或者客户团体所使用。基于组件的方法加速了总体开发过程,并且使得各种组织在他们现有的技能和优化结果的开发努力中得到平衡。

3.采用标识简化页面开发。

Web 页面开发人员不会都是熟悉脚本语言的编程人员。JavaServer Page 技术封装了许多功能,这些功能是在易用的、与JSP 相关的XML 标识中进行动态内容生成所需要的。标准的JSP 标识能够访问和实例化JavaBeans 组件,设置或者检索组件属性,下载Applet,以及执行用其他方法更难于编码和耗时的功能。

通过开发定制化标识库,JSP 技术是可以扩展的。今后,第三方开发人员和其他人员可以为常用功能创建自己的标识库。这使得Web 页面开发人员能够使用熟悉的工具和如同标识一样的执行特定功能的构件来工作。

JSP 技术很容易整合到多种应用体系结构中,以利用现存的工具和技巧,并且扩展到能够支持企业级的分布式应用。作为采用Java 技术家族的一部分,以及Java 2 (企业版体系结构)的一个组成部分,JSP 技术能够支持高度复杂的基于Web 的应用。

由于JSP 页面的内置脚本语言是基于Java 编程语言的,而且所有的JSP 页面都被编译成为Java Servlet ,JSP 页面就具有Java 技术的所有好处,包括健壮的存储管理和安全性。作为Java 平台的一部分,JSP 拥有Java 编程语言“一次编写,各处运行”的特点。随着越来越多的供应商将JSP 支持添加到他们的产品中,您可以使用自己所选择的服务器和工具,更改工具或服务器并不影响当前的应用。

2.1.2 JSP技术的未来

JSP技术被设计为一个开放的,可扩展的建立动态Web页面的标准。开发人员可以使用JSP页面来创建可移植的Web应用,在不同的Web和应用服务器上为不同的场合所运行,而不论采用什么适合本身场合和需要的创建工具。

通过与业界领袖的合作,Sun保证JSP规范是开放的和可移植的。可以使用任何客户机和服务器平台,在任何地方编写和部署它们。将来,工具供应商和其他厂商将通过为专门的功能提供客户化的标识库而扩展平台的功能。

JSP规范的1.0版本是通向动态Web页面生成的一个开放的工业标准方法的第一步。1.0版本通过一个核心标识集、隐含对象以及开始创建动态Web页面所需的基本功能构成了该方法的基础。已经有几个Web服务器,应用服务器和开发工具供应商正在为他们的产品添加JSP1.0的支持,这样在业界已经拥有了最初的、立即的支持。

在1999晚些时候将完成的1.1版本,通过更多的XML支持、客户化标识、以及与J2EE的集成而扩展这个版本。并且供应商们可能会有选择地扩展和扩充在JSP规范中基本的、必需的功能。JSP引擎能够强有力地支持多种脚本语言和对象模型。在业界扩充和使用JSP技术能力的同时,也向Sun承诺将保证JSP技术保持平台和服务器间固有的可移植性。

1)Tomcat服务器

Tomcat是一个带有jsp环境的servlet容器.servlet容器是一个根据用户的行为可以管理和激活servlet的运行时的shell.

粗略地可以将servlet容器分为如下几类:

独立的servlet容器

内置有web服务器的一部分.指当使用基于Java的web服务器的情形,例如:servlet容器是JavaWebServer的一个部分. 独立的servlet容器是Tomcat的默认模式.

大多数的web服务器并非基于Java,因此,我们可以得出如下两种容器的模式.

进程内的servlet容器

servlet容器作为web服务器的插件和Java容器的实现.Web服务器插件在内部地址空间打开一个JVM(java virtual machine)使Java容器得以在内部运行.如有某个需要调用servlet的请求,,插件将取得对此请求的控制并将他传递(使用JNI)给Java容器.进程内容

器对于多线程,单进程的服务器非常合适并且提供很好的运行速度,但伸缩性有所不足.

2)进程外的servlet容器

servlet容器运行于web服务器之外的地址空间且作为web服务器的插件和Java容器的实现的结合.web服务器插件和Java容器 JVM使用IPC机制(通常是TCP/IP)进行通讯.当一个

调用servlet的请求到达时,插件将取得对此请求的控制并将其传递(使用IPC等)给Java容

器,进程外容器的反应时间或进程外容器引擎不如进程内容器,但进程外容器引擎在许多其

他可比的范围内更好(伸缩性,稳定性等).

Tomcat既可作为独立的容器(主要是用于开发与调试)又可作为对现有服务器的附加(当前支持Apache,IIS和Netscape服务器).即任何时候配置Tomcat你都必须决定如何应

用他,如选择第二或第三种模式,你还需要安装一个web服务器接口.

2.2 数据库简介

数据库选用的是SQL Server2000,因为SQL Server 2000扩展了SQL Server7.0版的性能,提高了可靠性和易用性。所提供的C2级安全标准及先进的容错功能保证了信息的完

整性和有效性,满足对系统安全性的要求。SQL Server 2000对服务器增加了XML支持、联

合数据库服务器、用户定义函数、新的数据类型、全文检索增强、排序规则增强。Windows NT+SQL Server 2000提供的RAS使得工作站-服务器得远程通信较容易实现,由RAS提供

的网络访问是透明的,远程用户可入网分享资源,访问SQL SERVER 2000数据库等;SQL Server 2000是图形化的大型数据库管理系统,它支持分布式处理,提供开放的数据库链接,可以平滑的网络和协议,其完善的事务处理和可用性、安全性满足对数据安全性和一致性

的要求。

JDBC-ODBC

JSP 可以轻松的与多种数据库相连,通过JSP 网页可以添加、删除、修改和浏览数据库中的数据。JSP 连接数据可以通过两种方法,一种是通过JDBC DRIVER,另一种是通过

JDBC-ODBC 桥。SQL 是一种很流行的关系数据库,JDBC 是第一个标准化地把关系数据库

和Java 程序集成到一起。

JDBC 简介

许多开发者和用户都在寻找Java 程序中访问数据库的便捷方法。由于Java 是一个健壮、安全易于使用的易于理解。所以它成为开发数据库应用的一种良好的语言基础。它提

供了C,C++,Smalltalk, BASIC, COBOL, and 4GLs 的许多优点,许多公司已经开始在Java

与数据库管理系统DBMS 的连接方面做工作。许多Java 应用开发者都希望能够编写独立于

特定DBMS 的程序,而我们也相信一个独立于DBMS 的接口,将使得与各种各样DBMS 连接

变得最为便捷,开发更加迅速。所以定义一个通用的SQL 数据库存取框架,在各种各样的

提供数据库连接模块上提供统一的界面是十分有意义的。这使程序员可以面对单一的数据

库界面。使与数据库无关的Java 工具和产品成为可能。使得数据库连接的开发者可以提供

各种各样的连接方案,我们看到,我们定义一个通用低层的支持基本SQL 功能的

JavaDataBase Connectivity (JDBC)API 的紧迫任务。说到JDBC 很容易让人联想到另一个

十分熟悉的字眼ODBC ,它们之间有没有联系呢?如果有那么它们之间又是怎样的关系呢?ODBC 是Open Database Connectivity 的英文简写。它是一种用来在相关或不相关的数据库管理系统DBMS 中存取数据的,用C 语言实现的标准应用程序数据接口。通过ODBCAPI 应用程序可以存取保存在多种不同DBMS 中的数据,而不论每个DBMS 使用了何种数据存储格式和编程接口。

JDBC 是一种用于执行SQL 语句的JavaAPI Application Programming Interface 应用程序设计接口。它由一些Java 语言编写的类和界面组成,JDBC 为数据库应用开发人员,数据库前台工具开发人员提供了一种标准的应用程序设计接口,使开发人员可以用纯Java 语言编写完整的数据库应用程序。

JDBC 能完成下列三件事:

1)同一个数据库建立连接。

2)向数据库发送SQL 语句。

3)处理数据库返回的结果。

JDBC 的特点

●JDBC 允许查询表达式直接传递到底层的数据驱动,这样一个程序可以获得尽量

多的SQL 功能,但是可能被DBMS 拒绝,事实上一个程序的查询,甚至可以不是

SQL 的,或者是SQL 的一个特殊演化。例如为专门数据库设计的文本或者图形

查询。

●为了通过JDBC 兼容的测试,并且能够被称为JDBC 兼容,我们要求一个驱动

至少支持ANSI SQL-2 的标准,这使得那些需要广泛移植性的程序获得一个最小的分母,我们相信ANSI SQL-2 是足够强大的,并且是得到足够支持的。

为了兼容性的需要,JDBC 必须可以建立在现有的数据库接口上:

我们必须能够保证 JDBC SQL API 能够建立在普通的SQL API 上,尤其是

ODBC 才能保证JDBC 与现有数据库的兼容性。

接口概貌

接口分为两个层次一个是面向程序开发人员的JDBC API ,另外一个是底层

的JDBC Driver API。

JDBC API

JDBC API 被描述成为抽象的Java 接口似的应用程序,远可以对某个数据库打

开连接执行SQL 语句,并且处理结果最重要的接口是:

java.sql.DriverManager 处理驱动的调入并且对产生新的数据库连接提供支持

java.sql.Connection 代表对特定数据库的连接

java.sql.Statement 代表一个特定的容器来对一个特定的数据库执行SQL 语句

java.sql.ResultSet 控制对一个特定语句的行数据的存取

其中java.sql.Statement 又有两个子类型

1. java.sql.PreparedStatement 用于执行预编译的SQL 语句

2. java.sql.CallableStatement 用于执行对一个数据库内嵌过程的调用

JDBC Driver API

java.sql.Driver 完整的定义了大部分JDBC 驱动,只需要完成这些JDBC API 所定义的抽象类就可以了,特别地所有的driver 必须提供对java.sql.Connection,

java.sql.State-ment, java.sql.Prepared Statement, java.sql.ResultSet 的实现,如果目标DBMS 提供有OUT 参数的内嵌过程,那么还必须提供java.sql.CallableStatement 接口 ,每个database driver 必须提供一个类java.sql.Driver 以使得系统可以由

java.sql.DriverManager 来管理。一个完整的driver 是在ODBC 之上提供对JDBC 的实现,从而提供与ODBC 接口的JDBC-ODBC 桥就象图2.2.1所显示的,由于JDBC 放在ODBC 之后,所以实现起来简单而且高效。

图2.2.1 JDBC-ODBC 桥

2.3小结

本章主要介绍了聊天室系统一些技术上的介绍,,并学习使用这些软件工具,为后面聊天室系统开发服务。

第三章需求分析

3.1 以往聊天室系统的缺陷

通过对以往聊天室的研究及分析,发现聊天室系统存在以下问题:1.以往聊天室只能看到用户ID而不能看到用户的个人形象,包括个人头像和个人服装SHOW。2..不能轻易分辨出自己谈话和别人的谈话。3.用户聊天只有单纯的文字表达,不能通过丰富的表情和图片来增添聊天的乐趣。4.。聊天背景只有单纯的白色,没有任何可供选择的背景颜色和画面,使整个聊天环境显的呆板。

3.2 聊天室系统作为网络通讯工具的作用

聊天室是提供给网民一个交友与娱乐的场所,在聊天室里网民可选择自己的聊天对象,与其进行对话交流,是网民之间相互沟通、交流情感的最佳方式之一。用户可以通过网络在线与距离遥远的其他一位或多位用户进行信息交流。在聊天室里网民可选择自己的聊天对象,进行对话交流。既可以一对一,又可以一对多,还可以形成小组进行多对多讨论,方便网民在线私聊与群聊。是现行网络最流行、最被广泛应用的通讯工具。

3.3 现行聊天室系统的功能需求

聊天室系统虽然满足了人们的在线通讯,但是随着聊天室被广泛应用,人们对于聊天的要求也越来越高,单纯的聊天已不能满足人们的需要,人们更需要多功能的聊天室系统,来丰富聊天环境。

聊天室系统功能具体需求包括:

1.一个聊天室里所有的人都可以互相密谈。

2.可以通过用鼠标点击页面上出现的或者人名列表的人名来选择人名。

3.可以使用颜色来轻易分辨出别人的谈话和自己的谈话。

4.可以察看进入房间以后的所有聊天纪录。

5.可以通过贴图在您聊天中加入卡通图片,使聊天内容丰富多采,充满活力。

6.可以根据您的自己喜好来设置背景颜色和画面,使您更加舒适的聊天。

3.4 小结

本章主要介绍了以往聊天室系统的一些缺陷,通过现今网络技术的发展来满足人们对聊天室系统的需求。本章主要是为后面进行系统分析和模块设计服务。

第四章 聊天室系统的总体设计

4.1聊天室结构分析

本聊天室采用的是当前流行的Browser/Server(浏览器/服务器)结构,B/S 结构是随着Internet 技术的兴起,对C/S 结构的一种变化或者改进的结构。在这种结构下,用户界面完全通过WWW 浏览器实现,一部分事务逻辑在前端实现,但是主要事务逻辑在服务器端实现,形成所谓3-tier 结构。B/S 结构利用不断成熟和普及的浏览器技术实现原来需要复杂专用软件才能实现的强大功能,并节约了开发成本,是一种全新的软件系统构造技术。

近年来由于Internet/Intranet 技术的发展和普及,各种各样的信息都在WWW (World Wide Web )上发布,人们之间的信息沟通比以往变得更为高效快捷,Web 技术的应用已成为一种必然,但传统的客户机/服务器模式的数据库设计与Web 的相关技术互相独立,两者无法进行集成,我们知道,采用客户机/服务器模式的数据库系统无论在设计开发还是在应用方面都具有一定的局限性,比如在应用中,操作人员必须学会本系统的操作方法、规程等,不具有普及性、易懂性,等等,基于这种情况,微软提出Web Computing 的概念,将它应用于数据库技术中。

浏览器/服务器(Brower/Server )模式的数据库体系是利用Web 服务器和Java Server Pages (JSP )作为数据库操作的中间层,将客户机/服务器模式的数据库结构与Web 技术密切结合,从而形成具有三层Web 结构的浏览器/服务器模式的数据库体系,(如图)

图4.4.1 BS 体系图

工作原理:在前端采用IE 、Netscape 等的浏览器将用户提交的操作信息向Web 服务器发出HTTP 请求,Web 服务器通过JSP 和一些中间组件访问后台数据库,并将操作结果以HTML 页面的形式返回给前端浏览器。

4.2网络聊天室的设计与实现

首先介绍网络聊天室的功能,该聊天室的功能包括如下:

(1) 登录

(2) 验证进入聊天室

(3) 聊天室主页面

(4) 帮助

(5)查看聊客

(6)离开

整个聊天室由以下几个页面组成:

1)in.jsp 登录聊天室

2)link.jsp 连接数据库

3)link.java 连接数据库的Javabean

4)login.jsp 用户名的验证工作

5)send_1.jsp 对用户消息各个变量的初始化

6)send.jsp 发送信息

7)show.jsp 显示信息

8)list.jsp 用户列表

9)leave.jsp 离开聊天室

10)main.html 聊天室主页面

11)help.html 帮助页面

聊天室执行流程图:

图4.2.1

聊天室界面及其功能:

1)in.jsp登录界面

对聊天室定义各个变量和建立矢量,以及建立哈希表来保存用户的信息,并初始化个变量的值。同时在message矢量中加入一条初始的欢迎信息“欢迎来到pollux聊天室”。这个界面是用我的网名来命名的,如图:

图4.2.2 聊天室登入界面

该聊天室登入界面本身具有一定的安全保护措施,能够对用户的身份进行验证,从而保证数据库中的数据不受破坏。所以,当用户准备运行系统时,首先要进入用户登录模块。其模块流程图:

图4.2.3 用户登入图

该流程图为用户登入界面的流程图。

流程说明:

1.当用户在登入界面输入用户名和密码,点击提交按纽,判断输入的用户名是否为空,若是,则显示错误提示给用户,并要求用户重新输入,重复步骤1,若不为空则到步骤2;

2.判断用户输入的密码是否为空,若是,则显示错误提示给用户,并要求用户重新输入,

转到步骤1,若不为空则到步骤3;

3.in.jsp进行表单提交,由in.jsp界面转到login.jsp界面进行表单数据处理;

4.对用户输入的用户名和密码在数据库中进行查询,看是否在数据库的用户登入表中存在该用户,若不存在,则提示用户重新输入,并显示相关链接,若存在,则用户验证通过,显示进入主界面和重新申请ID两个链接,供用户选择。

在程序中,一共有4 个Application 如下表所示

表4.1

在这个程序中可以看到在矢量的建立过程中有下列几个过程:

Vector chat1MsgVector=new Vector();

chat1MsgVector.addElement("

欢迎进入pollux聊天室.

");是一个建立矢量的过程

用Vector 的addElement 方法在矢量中加入一条初始信息“欢迎进入pollux聊天室”,getServletContext().setAttribute("chat1MsgVector ",chat1MsgVector);

添加chat1MsgVector 到服务器的Application 对象中并命名为chat1MsgVector

在下面这段程序中将看到建立两个Hash 哈希表来保存双值变量的过程

Hashtable userTime=new Hashtable();

Hashtable userIP=new Hashtable();

添加userTime 和userIP 到服务器的Application 对象中分别命名为userTime 和userIP。getServletContext().setAttribute("userTime",userTime);

getServletContext().setAttribute("userIP",userIP);

程序为初始化整个聊天室的首页在调试过程中应以此作为聊天室的入口。

1)login.jsp用户验证页面

用户验证是需要通过对数据库中username 和password 的验证来达到验证的目的。

所以先要建立数据库,数据库系统使用的是SQL SERVER 2000,由于JSP 使用统一的数据库接口ODBC-JDBC 桥,建立数据库连接这使得用JSP 开发的工程可以在不同的数据库平台上移植。在SQL Server2000中,建立一个数据库命名为pass,并在表单中建立名为pass的表,用

来保存username,password。

在数据库建立之后,我们进行数据库的设计工作,这里建立两列内容,username,password。很快的建立一个数据库列表。建立ODBC数据源,打开Win2000的ODBC数据源管理工具,在用户DSN中添加一个名位pass的SQL Server数据源,建立数据源后,程序就可以通过JDBC-ODBC桥来调用SQL Server数据库。过程如下:

1)首先,在控制面板中的管理工具中打开“数据源”,在用户DSN 中,单击“添加”按钮,出现创建新数据源对话框。

2)从“名称”列表中选择SQL Server,单击“完成”,出现建立“新的数据源到SQL Server ”

对话框,在名称框中键入数据源的名称“path ”,在服务器栏中选择一个SQL Server 服务器,在本机调试时选择“(local)”本地服务器。

3)在“建立新的数据源到SQL Server”对话框中单击“下一步”按钮,出现选择SQL Server 确认登陆的ID 的对话框。在本机调试时选择“使用网络登陆ID 的Windows NT验证”。4)在选择单击下一步后,出现数据库选择框后,点击下拉框选择pass 。然后选择一系列的默认操作完成pass 数据源的建立。

5)在完成数据库的建立后,要对数据库进行连接测试。首先要启动SQL 服务器,然后进行连接测试。当显示测试成功,我们就完成了数据源的建立工作。

JDBC-ODBC桥

利用一个Javabean来完成对数据库的连接,在JSP程序中,调用这个数据库接口,即

JDBC-ODBC桥。

2)聊天界面及其功能

用户通过验证后,就可以进入聊天室聊天了,进入main.html 页该页调用show.jsp ,link.jsp 和send_1.jsp页构成聊天的主页面。如下图,该图为聊天界面图,一些功能都很清楚的在聊天界面上。

图4.2.4 聊天界面图

下面通过一个具体模块来说明一下此聊天界面的一些功能,如聊天信息发送处理模块,

通过该模块能很清楚的了解该界面上的一些功能,具体的流程图如下:

这个流程图是聊天信息发送处理流程

流程说明:

1.当用户在聊天界面上输入聊天信息,并点说话这个按纽后,Send_1.jsp页面提交当前表单到Send.jsp页面进行处理,Send.jsp这个页面接受到Send_1.jsp页面提交的信息后对记录聊天记录的Vector聊天数组进行大小判断,如果大于30条聊天记录则清除原有聊天记录并保存一条提示信息到该数组中并跳到步骤2,如果小于30条则直接到步骤2;

2.获取Send_1.jsp页面关于颜色、对象、悄悄话、表情等相关设置值并保存到相应的Vector数组,而后对聊天数组中的聊天信息进行检查,如果某条聊天记录含有Html标记则将该条记录删除并保存错误提示信息到该聊天数组,并跳到步骤3。否则直接到步骤3;

3.获取各Vector的值,而后按规则显示在Show.jsp上。

3)离开界面

Leave.jsp程序用于处理用户离开的操作,在用户点击离开后leave.jsp 将用户从列

表中删除temp.removeElement(user);并打印一条信息

temp=(Vector)getServletContext().getAttribute("chat1MsgVector");

temp.addElement(""+"系统说:"+user+"离开了


");

getServletContext().setAttribute("chat1MsgVector",temp);

通知大家谁离开了。

4)帮助界面

Help.html页面介绍聊天室的简单情况,和一些必要的帮助信息。如提示用户该聊天室已满,请稍后在进。

4.3 小结

本章的主要介绍聊天室系统的设计流程,通过用具体的实图和流程图来展现这个聊天的功能与实现。

基于JAVA实现聊天室

第1章绪论 1.1 论文背景及课题来源 随着网络技术的发展和普及,Internet已经成为人们获取有关信息和相互交流的重要途径之一,越来越多的机构和组织开始利用网络资源传递、发布、收集和管理信息。这对各种类型的网络提供一次很大的挑战与机遇,特别是通过网络进行信息交互的这种活动,更加使网络的经营方式充满了活力和机动性[5]。 基于C/S模型的Java聊天室是应用于网络交流领域的系统,它的主要特点有:(1)通用性:聊天室系统在各种各样的网络中均可以运行,系统具有较高的可移植性和使用性; (2)实用性:系统具有良好的人机界面,便于各类使用者操作,提供了人性化的服务; (3)及时性:通过网络的连接,系统双方的交流可以在短期内进行,相比与传统面对面的交流节省不少时间[15]。 聊天室中聊天内容的及时性和准确性是极其重要的,它主要针对当今社会快节奏生活,人们没有很多时间来等信息。本系统提供的功能便于系统使用双方的信息交流,有效的提高了使用者的使用效率,缩短了使用者的使用时间[6]。 1.2 本课题在国内外的发展状况 随着网络技术的发展和普及,多数网站纷纷利用自己的网络资源建立聊天室,并为客户提供各种各样便捷的服务。中国的一些龙头网站,如sina,有很多聊天室,供国内外的不同的人们进行不同话题的讨论,不仅将会员发展由国内延伸到国际,更是为提高自身的知名度提供了方便[2]。 聊天室的开放性、信息资源的多样性可为网站发展提供优良的广告宣传和商品推广,这是其他网站活动方式所无法比拟的,聊天室趋向方便化、快捷化是各大网站成长的必然经历的阶段[8]。 1.3 应解决的问题及系统开发意义 本系统针对聊天室用户的需要,建立了客户端和服务器端。主要解决的问题包括:(1)服务器端和客户端要实现界面化,并且界面尽量人性化。 (2)服务器端能够正确的启动,并且时刻监视客户端,保持与客户端的连接。 (3)客户端能够快速准确的连接上服务器端,发送的信息经服务器端可以转发给其他客户。 (4)异常处理,对于用户的不正确的操作系统应该有提示。 基于C/S的Java聊天室系统它的开发意义在于为人们之间相互交流提供了一个快捷、方便的应用平台。大型网站可以通过聊天室来提高自身的知名度,增加的访问流量。

JAVA代码编写一简单网络聊天程序

要求:聊天室服务器、聊天室客户端;客户端之间可以聊天。 因为我是初级选手,想借此程序分析学习java,所以代码最好多一点注释... 分数有限,望大家不吝赐教!!问题补充: 需要图形用户界面哦,最好用swing组件 服务器端:采用多线程,可以向客户广播:当前聊天室人数,客户名称列表,客户进入离开提示; 客户端:可以设定昵称,性别,客户间可以私聊 服务器端: import java.awt.*; import java.awt.event.*; import javax.swing.*; import java.io.*; import https://www.360docs.net/doc/7d2486443.html,.*; public class Server extends JFrame implements ActionListener{ JPanel contentPane; JLabel jLabel2 = new JLabel(); JTextField jTextField2 = new JTextField("4700"); JButton jButton1 = new JButton(); JLabel jLabel3 = new JLabel(); JTextField jTextField3 = new JTextField(); JButton jButton2 = new JButton(); JScrollPane jScrollPane1 = new JScrollPane(); JTextArea jTextArea1 = new JTextArea(); ServerSocket server = null; Socket socket = null;BufferedReader instr =null;PrintWriter os=null ; //Construct the frame public Server() { jbInit(); } class MyThread extends Thread{//该线程负责接受数据 public void run(){ try{ while(true){ this.sleep(100); instr= new BufferedReader(new InputStreamReader(socket.getInputStream())); if(instr.ready()){ //检查是否有数据 jTextArea1.append("客户端: "+instr.readLine()+"\n"); } } }catch(Exception ex){} }

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)进行数据交流,初步掌握网络聊天通信程序的设计方法。并能巩固和扩展大学期间的学习内容,进行项目的设计开发训练,更好的适应社会的需求。

基于java socket的聊天室项目文档

北京邮电大学软件学院 2010-2011 学年第 1学期实训项目文档 (每个项目小组一份) 课程名称:全日制研究生实训 项目名称:通信软件实训 项目完成人: 姓名:学号: 姓名:学号: 姓名:学号: 姓名:学号: 姓名:学号: 姓名:学号: 指导教师: 日期:2011年1月21日

基于java socket的聊天室实现 一 . 实训项目目的和要求(说明通过本项目希望达到的目的和要求) 目的:熟练掌握socket编程原理,并用java socket实现聊天室 要求:实现p2p和聊天室功能 二 . 实训项目开发环境(说明本项目需要的环境) 开发工具:Eclipse SDK Version: 3.5.2 和NetBeans 6.9.1 版本 系统:win7 三 . 实训项目内容(说明本项目的内容,如:问题分析、设计方案、算法、设计图等) 1.问题分析 网络编程中两个主要的问题一个是如何准确的定位网络上一台或多台 主机,另一个就是找到主机后如何可靠高效的进行数据传输。在TCP/IP协 议中IP层主要负责网络主机的定位,数据传输的路由,由IP地址可以唯一 地确定Internet上的一台主机。而TCP层则提供面向应用的可靠(tcp)的 或非可靠(UDP)的数据传输机制,这是网络编程的主要对象,一般不需要 关心IP层是如何处理数据的。目前较为流行的网络编程模型是客户机/服务 器(C/S)结构。即通信双方一方作为服务器等待客户提出请求并予以响应。 客户则在需要服务时向服务器提出申请。服务器一般作为守护进程始终运 行,监听网络端口,一旦有客户请求,就会启动一个服务进程来响应该客户, 同时自己继续监听服务端口,使后来的客户也能及时得到服务。 两类传输协议:TCP;UDP。TCP是Tranfer Control Protocol的简称, 是一种面向连接的保证可靠传输的协议。通过TCP协议传输,得到的是一个 顺序的无差错的数据流。发送方和接收方的成对的两个socket之间必须建 立连接,以便在TCP协议的基础上进行通信,当一个socket(通常都是server socket)等待建立连接时,另一个socket可以要求进行连接,一旦这两个socket连接起来,它们就可以进行双向数据传输,双方都可以进行发送或 接收操作。

网络聊天室系统设计与实现

科研训练 网络聊天室系统设计与实现Design and implementation of network chat room system 学生姓名XXX 专业软件工程 学号1305XXXXX 指导教师李XX 祝XX 学院计算机科学技术学院 二〇一六年六月

目录

一、引言 随着网络的大幅度普及,以及网络技术快速发展,人们通过网络进行交流的方式发生着巨大的变化,人们不再拘泥于移动电话的通话模式,越来越多的人通过网络聊天工具进行交流,网络聊天室便是非常典型的聊天工具之一。聊天室系统的即时交流方式满足了网络中人们同时与多人进行聊天交流的需要,使得较多的人在同一个聊天页面进行交流变得方便,简单。 本设计所完成的网络聊天室具有常用聊天室的所有功能,包括使用账号登录聊天室、注册账号、显示在线用户列表、显示系统消息、两人之间进行私密聊天、消息提醒、发送表情、修改发送文字颜色;同时,为了管理聊天室中的用户使用语言的文明,赋予管理员踢出使用不文明语言的用户功能,显示全部聊天信息。该系统采用B/S(浏览器/服务器)结构进行开发,参考网络中正在使用的大型聊天室的架构、分析聊天室可实现功能,结合本次设计的相关要求,进行开发设计并写出需求分析说明书。 该系统具体开发环境:使用专业版作为服务器运行平台,服务器开发语言使用Java语言,前台使用Jsp技术、JavaScript、Jquery语言,系统框架使用 Struts2+Hibernate+Spring框架,后台数据库使用MySql数据库。 二、需求分析 该系统采用B/S模式设计,开发目的主要是提供一个基于网络的安全文明的供多人聊天社交平台。 系统运行环境需求 该系统是在windows 专业版操作系统下,搭建的运行平台,使用myEclipse作为开发工具,mySql作为数据库,Java语言作为系统后台开发语言。 JSP技术作为前台开发语言,其中使用JavaScript以及Jquery作为脚本语言。工程框架使用Struts+Spring+Hibernate框架。 (1)服务器配置: (2)客户端要求配置: 谷歌浏览器、狐火浏览器以及IE浏览器以上版本。 模块功能分析 (一)用户注册登录模块 新用户在使用该聊天室系统时,必须先进行注册新用户操作,后台将注册信息添加到数据库中,用于胡勇登录验证;在注册成功之后再进行登录; 当用户名与密码匹配成功,即可进入聊天室系统。 (二)在线用户显示模块 当用户登录进入系统后,该页面实现在线用户的统计,并将在线用户依次显示出来。如果当前用户属于管理员角色,则在普通用户角色的右边显示“踢下线”链接,如果当前用户属于普通用户角色,则正常显示在线用户名。 (三)用户交流聊天模块 该模块主要负责发送信息内容,选择聊天对象;除此之外,可以修改聊天内容的字体颜色以及发送的表情。发言的颜色和发言的表情通过下拉式组合框实现。发言内容书写完毕后。通过点击“发送”按钮,发送聊天内容。 (四)聊天信息显示模块 当用户选择聊天对象并发送聊天内容后,显示出当前发送的内容以及之前的历史聊天内容,聊天的内容只有对话的两人可见,其他人不可见。当用户退出系统后,再次登录进入聊天室时,两人的对话记录依然存在。

基于Linux网络聊天室的设计3

基于Linux网络聊天室的设计 摘要本课程设计实现了在linux下简单的网络聊天室。在Linux下编写并调试服务器端程序和客户端程序,实现了客户、服务器之间的连接和通信。可以在单机上开辟两个窗口分别运行客户、服务器端的程序,或者将两台主机连接分别作为客户和服务器的方式。本设计使用网络套接字socket和多线程在网络中的应用,并基于linux下的vi编辑器。本方案经gcc调试器调试成功,可以在单机网络聊天中使用。 关键词网络聊天室;linux ;socket ;vi Abstract Design and Implementation of the course in under linux simple network chat rooms. Prepared in the Linux and debugging server-side processes and client to achieve the client, server and communications link between. Can open up two windows on the stand-alone operation, respectively, customers, server-side procedures, or to connect two hosts, respectively, as the way the client and server. The design of the network socket using the socket and multi-threaded applications in the network, and under linux based vi editor. The program by the success of gcc debug debugger, you can chat in the use of stand-alone network. Key words Network Chat Rooms; Linux; Socket; Vi

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 -

Windows C语言构建网络聊天室

Windows C语言构建网络聊天室 利用C语言编写Windows应用程序有两种方式:一种是Windows C编程方式,另一种是Visual C++编程方式。在一般情况下,Visual C++编程方式编写的程序源代码量小、开发时的工作量小、工作难度也较小,但编译后的代码量较大,运行速度略低;而Windows C编程方式编写的程序源代码量虽然较大,但可执行代码效率高。随着技术的进步,Visual C++编程方式已被广泛采用,但象网络编程等一些对速度要求高、对硬件操作较多的程序,大多数还是用Windows C编程方式开发的。另外,学习Windows C 程序设计,还有助于更深入地了解Windows的内幕和Windows API。 基本的网络编程都是建立在Winsock基础上的。Winsock是90年代初,为了方便网络编程,由Microsoft联合了其他几家公司共同制定的一套WINDOWS下的网络编程接口,它是通过C语言的动态链接库方式提供给用户及软件开发者的,主要由winsock.h头文件和动态链接库winsock.dll组成,目前有两个版本:Winsock1.1和Winsock2.0。 作为网络编程接口,Winsock屏蔽了网络底层的复杂的协议和数据结构,使得编程人员对网络的操作变得非常简单,因此,在Win32平台上,访问众多的基层网络协议,Winsock是首选接口。 用Winsock构建一个网络聊天室,有两种基本的方式:数据报方式和流方式。 一、面向无连接的数据报方式 数据报方式又称无连接方式,对应的是UDP(User Datagram Protocol)协议。这种方式不提供数据无错保证,数据可能丢失或重复并且接收顺序混乱,后发出的报文可能会先收到,并且报文的长度是有限制的;不过,由于取消了重发校验机制,能够达到较高的通信速率,可以用于对数据可靠性要求不高的通信,如实时的语音、图像传送和广播消息等。 和C语言一样,函数是Windows C编程的最基本的单位。不过,Windows C主要使用API函数,而网络编程则主要使用Winsock提供的API函数。数据方式构建网络聊天室主要使用了以下几个函数:1.WSAStartup():初始化。 【函数原型】 int PASCAL FAR WSAStartup(WORD wV ersionRequired, LPWSADATA lpWSAData); 【使用说明】 每一个使用winsock的应用程序,都必须进行WSAStart函数调用,并且只有在调用成功之后才能使用其它的winsock网络操作函数。 返回值:调用成功返回0;否则,返回出错信息。 WversionRequired<输入>:表示欲使用的Winsock版本,这是一个WORD类型的整数,它的高位字节定义的是次版本号,低位字节定义的是主版本号。 LpWSAData<输出>:是一个指向WSADATA资料的指针。这个资料我们一般不使用。2.Socket():创建一个Socket。 【函数原型】 SOCKET socket(int af,int type,int proctocol); 【使用说明】 Winsock网络通信的第一步通常就是调用这个函数。所有的通信在建立之前都有要创建一个 Socket。该函数的功能与文件操作中的fopen()类似,返回值是由Winsock定义的一种数据类型 SOCKET,它实际是一个整型数据,是Socket创建成功时,Windows分配给程序的Socket编号,后面调用传输函数时,可以把它像文件指针样引用。如果Socket建立失败,返回值 WIV ALID_SOCKET。 Af<输入>:指address family(地址族),一般都填AF_INET,表示是在Internet上的Socket; Type<输入>::是Socket的类型,当采用流连接方式时,用SOCK_STREAM;采用数据报文方式时,用SOCK_DGRAM。

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

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

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

基于JAVA网络聊天室设计

滨江学院 毕业论文(设计)题目基于JA V A网络聊天室设计 学生姓名郭胜航 学号 20072334069 院系滨江学院电子工程系 专业通信工程 指导教师张艳萍 职称教授 二O一一年五月三十日

目录 目录................................................................................. I 第1章绪论. (1) 1.1 研究背景 (1) 1.2 研究目的、内容及要求 (2) 1.2.1 目的 (2) 1.2.2 内容 (2) 1.2.3 要求 (2) 第2章系统开发环境与工具的选择 (3) 2.1 开发环境的选择 (3) 2.2 开发工具的选择 (3) 2.3 开发技术的选择 (4) 第3章需求分析 (5) 3.1 项目概述 (5) 3.1.1 产品描述 (5) 3.1.2 产品功能 (6) 3.2 功能需求 (6) 3.2.1 用户注册 (6) 3.2.2 用户登入 (7) 3.2.3 公聊 (7) 3.2.3 私聊 (8) 3.2.4 发送表情 (8) 3.2.5 聊天记录 (9) 3.2.6 系统消息 (9) 3.2.7 字体属性设置 (9) 3.2.8 用户退出 (10) 第4章概要设计 (11) 4.1 目的 (11) 4.2 运行环境 (11) 4.3 条件与限制 (11) 4.4 体系结构概述 (11) 4.5 功能设计 (12) 4.5.1 用户注册 (12) 4.5.2 用户登入 (12) 4.5.3 公聊 (13) 4.5.4 私聊 (14) 4.5.5 表情 (14) 4.5.6 字体设置 (15) 4.5.7 记录保存 (15) 4.5.8 系统消息 (16)

java编写的简单局域网聊天室(适合初学者).

import java.awt.BorderLayout; import java.awt.Button; import java.awt.Color; import java.awt.Dimension; import java.awt.Font; import java.awt.Frame; import java.awt.Panel; import java.awt.Point; import java.awt.TextArea; import java.awt.TextField; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.KeyAdapter; import java.awt.event.KeyEvent; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; import java.io.File; import java.io.FileWriter; import java.io.IOException; import https://www.360docs.net/doc/7d2486443.html,.DatagramPacket; import https://www.360docs.net/doc/7d2486443.html,.DatagramSocket; import https://www.360docs.net/doc/7d2486443.html,.InetAddress; import java.text.SimpleDateFormat; import java.util.Date; import java.util.Scanner; import java.util.concurrent.locks.Lock; import java.util.concurrent.locks.ReentrantLock; public class GUI_Chat extends Frame { private static final long serialVersionUID = 1L; private TextArea viewTextArea = new TextArea(20, 1; private TextArea sendTextArea = new TextArea(; private TextField ipTextField = new TextField(20; private Button sendButton = new Button(" 发送" ; private Button clearButton = new Button(" 清屏" ; private Button logButton = new Button(" 记录" ; private Button shakeButton = new Button(" 震动" ; private Panel panel = new Panel(; private DatagramSocket socket ;

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)用户可以配置服务器的真挺端口

Linux下的Socket网络编程:一个简易聊天室的实现-徐慧军

Linux下的Socket网络编程:一个简易聊天室的实现-徐慧军

高级程序设计与应用实践 报告 一个简易聊天室的实现 姓名:徐慧军 学号:2121134 专业:电子与通信工程 学院:信息科学与技术学院 任课教师:廖晓飞 2013年05月02日

Linux下的Socket网络编程: ——一个简易聊天室的实现一、socket介绍 socket接口是TCP/IP网络的API,socket接口定义了许多函数或例程,程序员可以用它们来开发TCP/IP网络上的应用程序。要学Internet上的TCP/IP 网络编程,必须理解socket接口。 socket接口设计者最先是将接口放在Unix操作系统里面的。如果了解Unix 系统的输入和输出的话,就很容易了解socket了。网络的socket数据传输是一种特殊的I/O,socket也是一种文件描述符。socket也具有一个类似于打开文件的函数调用socket(),该函数返回一个整型的socket描述符,随后的连接建立、数据传输等操作都是通过该socket实现的。常用的socket类型有两种:流式socket (SOCK_STREAM)和数据报式socket(SOCK_DGRAM)。流式是一种面向连接的socket,针对于面向连接的TCP服务应用;数据报式socket是一种无连接的socket,对应于无连接的UDP服务应用。 二、Socket创建 socket函数原型为: #include #include int socket(int domain, int type, int protocol); 功能:调用成功,返回socket文件描述符;失败,返回-1,并设置errno 参数说明: domain指明所使用的协议族,通常为PF_INET,表示互联网协议族(TCP/IP 协议族; type参数指定socket的类型: SOCK_STREAM 提供有序、可靠、双向及基于连接的字节流

聊天室设计报告

网 络 聊 天 系 统 设 计 报 告 组长:靳子豪 组员:凯强、许玉军、王明明 完成时间: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 进行可行性研究的方法 成本效益分析、对估算问题的看法、软件的作用围、软件的成本估算、速度安排

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。服务器端设计与实现过程中,采用了多线程技术,可以在单个程序当中同时运行多个不同的线程,执行不同的任务。大大增强了程序对服务器资源的利用。 聊天系统完成后将可进行多人对多人的聊天,对好友进行添加、删除,对新用户的注册,发送消息、接受消息等等功能。

基于Java的简单网络聊天室编程

基于Java的简单网络聊天室编程 摘要:当前是信息网络得到飞速发展的时代,尤其是计算机和通信技术的发展和结合,深深的影响着我们的生活、学习和工作方式。其中,网络聊天工具成为人们日常交流的一种重要工具,它成本低,通信速度快,方便信息交流和资料的传递。本次开发的网络聊天系统是基于开放的Java应用程序设计的,系统采用客户机/服务器的架构模式,由客户端程序和服务器程序外加服务器端,用于存放客户数据的数据库组成,使用Java提供的Socket类以及Java的多线程功能,在不同的端口上部署各类服务,可以在单个程序中同时运行多个不同进程,而客户端通过Socket发送信息给服务器,从而实现多点对多点的聊天。 关键字:Java,交互性,Socket类,多线程 Zhao cheng-yu Abstract:The rapid development of the information networks, especially the development and integration of computer and communication technologies, has deeply affected our lives, learning and work. Among them, the Internet chat tool becomes an important tool for daily communication, because it is low cost, fast communication and facilitat einformation exchange and data transmission. The development of the Internet chat system is designed based on open Java application. It can be dynamic, real-time information transfer and efficient interaction so that it can deal more effectively with customer requests, and is easy to maintain and update. The system will use the client / server architecture model, which includes the client program and server programs plus server-side database used to store customer data. By using the socket class provided by java and java multi-threading capability,we can deploy various services on a different port and a number of different processes can be run simultaneously in a single program. Clients send information to the server through the socket in order to achieve multi-point-to-multipoint chat. Key words: Java, interactivity, the Socket class, multi-threaded

网络编程_基于TCP的简易聊天室_实验报告

网络编程 课程设计说明书 题目名称:基于TCP/IP的网络文字聊天程序设计专业:网络工程

班级: 1201班 学号: 1220140105 姓名:蒋星 指导老师:利平 完成日期: 2014年12月13日

目录 一、实验基本信息概要3 1. 题目要求 3 2. 题目容3 3. 开发环境 3 二、流程图4 三、系统简介5 1.界面5 2. 软件功能 5 3. 系统设计 9 4. 优点与缺点9 四、系统详细设计11 1. ChatServer类11 2. ChatClient 类13 3. SocketException类15 5. 命令协议 15 6. 消息格式 16 五、系统测试16 1. 服务器使用错误16 2. 客户端使用错误17 3. 启动服务器17 4. 启动客户端17 5. 关闭客户端17 6. 启动服务器错误提示18 7. 公开聊天 18 8. 私聊 18 9. 错误的私聊19 10. 更名20 11. 帮助20 12. 非法指令20 13. 非法的指令参数20 14. 连接服务器失败21 六、心得体会21 七、完整代码21 Charserverd.cpp 服务器main函数文件 21 ChatServer.h 服务器类头文件 22 ChatServer.cpp 服务器类 23 ClientInfo.h 客户信息类 33 Charclientd.cpp 客户端main函数 34 ChatClient.h 客户端头文件34 ChatClient.cpp 客户端类 35 InitSock.cpp 初始化WINSOCK类41

SockException.h 异常类41八、[参考文献] 42

相关文档
最新文档