当前位置:文档之家› 网络聊天室系统设计与实现

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

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

科研训练

网络聊天室系统设计与实现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浏览器以上版本。

模块功能分析

(一)用户注册登录模块

新用户在使用该聊天室系统时,必须先进行注册新用户操作,后台将注册信息添加到数据库中,用于胡勇登录验证;在注册成功之后再进行登录;

当用户名与密码匹配成功,即可进入聊天室系统。

(二)在线用户显示模块

当用户登录进入系统后,该页面实现在线用户的统计,并将在线用户依次显示出来。如果当前用户属于管理员角色,则在普通用户角色的右边显示“踢下线”链接,如果当前用户属于普通用户角色,则正常显示在线用户名。

(三)用户交流聊天模块

该模块主要负责发送信息内容,选择聊天对象;除此之外,可以修改聊天内容的字体颜色以及发送的表情。发言的颜色和发言的表情通过下拉式组合框实现。发言内容书写完毕后。通过点击“发送”按钮,发送聊天内容。

(四)聊天信息显示模块

当用户选择聊天对象并发送聊天内容后,显示出当前发送的内容以及之前的历史聊天内容,聊天的内容只有对话的两人可见,其他人不可见。当用户退出系统后,再次登录进入聊天室时,两人的对话记录依然存在。

(五)系统消息显示模块

系统消息提示所有用户,聊天室的文明守则,以及当其他用户进入、离开或被管理员踢出聊天室的情况。

(六)管理员管理用户模块

管理员用户可以与其他用户聊天,并且随时监督其他用户的言行,一旦出现不文明用语,即将改用户踢出聊天室。

(七)辅助功能

系统数据流图

图2-2 顶层数据流图

图2-3 一层数据流图

图2-4 二层数据流图

数据字典

表2-1 用户名数据字典

表2-2 密码数据字典

表2-3 级别数据字典

系统功能模块结构

(1)用户注册登录模块

用户注册是添加用户到数据中,只能注册普通用户,当注册验证信息合格,即可登录进入聊天室。

图3-2 用户注册登录H图

(2)在线用户显示模块

当用户登录进入系统后,该页面实现在线用户的统计,并将在线用户依次显示出来。如果当前用户属于管理员角色,则在普通用户角色的

右边显示“踢下线”链接,如果当前用户属于普通用户角色,则正常显

示在线用户名。

(3)用户交流聊天模块

交流包括选择聊天对象,选择发送表情,字体颜色。

图3-3 用户聊天H图

(4)聊天信息显示模块

聊天信息的显示,首先系统必须获得与当前用户正在进行聊天的对象,根据聊天对象的用户名,获得存储在系统中的聊天记录,传送到浏

览器客户端,浏览器客户端进行1s刷新界面,从而获取两人之间的私密

聊天记录并显示在界面上。

图3-4 聊天信息显示H图

(5)系统消息显示模块

系统信息包括:聊天室守则、系统公告。

图3-5 系统信息显示H图

(6)管理员管理用户模块

管理员用户可以与其他用户聊天,并且随时监督其他用户的言行,一旦出现不文明用语,即将改用户踢出聊天室。

(7)辅助功能

辅助功能包括:显示全部聊天信息、退出聊天室。显示全部信息是指当用户之间的聊天信息占满全屏的时候,点击显示全部信息,即可看

到全部的聊天内容。退出聊天室是指用户离开聊天室。

数据库设计

概念设计

E-R图:该系统只存在用户一个实体,用户的属性包括:id、用户名、密码、级别。

图3-6 E-R图

逻辑设计

表3-1 用户表

数据库类型使用mySql数据库,用户表的主键为id。

四、详细设计

流程图

用户注册的时候,操作人员输入想取的用户民,输入自创密码与确认密码,点击注册;此时,系统会首先检测两次密码是有一致,若不一致,提示用户密码不一致,请重新输入。若一致,检测用户名是否已经被注册过,若已经被注册,提示是用户,已被注册。若为被注册,系统添加用户注册信息到数据库user 表中。界面提示用户注册成功,并跳转到登录界面。注册的用户默认type是普通用户,即user。

图4-1 注册流程图

用户登录的时候,用户输入用户名,密码,点击进入按钮,系统获取用户所填写的用户名与密码,首先判断该用户名是否存在于数据库,若不存在,提示用户不存在该用户,请重新填写或注册,若该用户名存在,则判断密码与用户名是否匹配,若不匹配,提示用户密码错误,请重新填写,若匹配,进入聊天室界面。

图4-2 登录流程图

当用户登录进入聊天室时,系统会将用户的信息存入application属性的userMap中,进入系统后,在jsp中获取userMap,将所有的用户信息中的用户名显示出来。

图4-3 显示在线人数流程图

用户实现找人聊天,点击聊天对象的用户名,获取聊天对象,填写发送内容,选择表情、与发送字体的颜色,点击发送即可进行聊天。

在未选择聊天对象时,点击发送,提示用户选择聊天对象;在未填写发送的内容点击发送时,提示用户未填写发送内容。

发送的表情默认为[微笑着],字体颜色默认为黑色。

图4-4 发送信息流程图

聊天信息显示,首先必须保证聊天对象的用户名不为空,当不为空时,系统将获取用户名,在application作用域中获得,相应的聊天记录属性,返回到jsp中,并显示在界面中。

图4-5 显示聊天记录流程图

在用户登录聊天室时,系统存储聊天室的聊天守则,并获取登录的用户名,存储系统公告(XXX进入聊天室!);当用户离开聊天室时,修改系统公告(XXX离开聊天室!);当用户被管理员踢出聊天室时,修改系统公告(XXX,被管理员踢出聊天室!)。

图4-6 显示系统信息流程图

当用户使用了不文明的语言,管理员有权利该用户踢出聊天室。获取用户名,在application中的userMap中获得相应的用户session,清除该session即可将用户踢下线。

图4-7 管理员管理用户流程图

显示与某人的全部聊天信息,当聊天的内容占满全屏,点击显示全部消息,即可显示全部信息。

当用户离开聊天室时,系统获取当前用户名,并释放user的session。

检测用户是否有新消息:

图4-8 检测信息流程图

算法

首先获取进行对话双方的用户名以及id,再比较两者的id若id1

图4-9 用户对话存储算法

当用户登录进入聊天室时,向application中存储一个isKickedMap属性,将用户名添加到isKickedMap中并赋值为1(1表示在线,-1表示被踢)。当管理员将某个用户踢下线时,将isKickedMap属性中的改用户名修改成“*”符号,并赋值为-1。Jsp页面每秒刷新一次,当检测到isKickedMap属性中getAttribute (“*”)== -1 时,则该用户被踢下线,此时要在jsp页面中提示用户已被踢下线,并返回登陆界面。

图4-10 检测用户是否被踢算法

检测当前用户是否有新消息算法

Jsp每隔1s就检测一次当前session中的call属性中是否有值,如果有值,返回到jsp中,在jsp中遍历出有个值,并且让id为该值的标签的背景色为红色。

图4-11 检测当前用户是否有新消息算法

界面设计

登陆首页是写在中的,前台主要运用jsp动态网页技术。并使用JavaScript语言判断用户是否正确输入用户名以及密码。在登录界面可以点击注册用户进入用户注册界面。

图4-12 登录界面

图4-13 注册界面

聊天室界面:左侧是在线人员列表显示,和在线人数的统计;右侧是专门显示系统公告的地方;中间属于聊天内容的显示;下方是用户发送消息的模块,在该模块中,当用户点击聊天对象的用户名,下方的第一个input框将获取到聊天对象的用户名,还可以选择聊天的表情与字体的颜色,在最下角的input框可以编辑所要说的话,点击发送,即可发送聊天内容。

图4-14 聊天室主界面

工程结构设计

该系统采用SSH(struts2 + spring + hibernate)框架搭建工程。

系统的基本是:在中,首先通过JSP页面实现,负责接收请求(Request)和传送响应(Response),然后Struts根据文件将ActionServlet接收到的Request委派给相应的Action处理。在业务层中,管理服务组件的Spring IOC容器负责向Action 提供业务模型(Model)组件和该组件的协作对象数据处理(DAO)组件完成业务逻辑,并提供事务处理、缓冲池等容器组件以提升系统性能和保证数据的完整性。而在中,则依赖于Hibernate的对象化映射和数据库交互,处理DAO组件请求的数据,并返回处理结果。

采用上述开发模型,不仅实现了视图、控制器与模型的彻底分离,而且还实现了与持久层的分离。这样无论前端如何变化,模型层只需很少的改动,并且数据库的变化也不会对前端有所影响,大大提高了系统的可复用性。而且由于不同层之间小,有利于团队成员并行工作,大大提高了开发。

工程结构中其中:

文件是关于配置spring的配置文件,主要是将各种POJO,JAVA,action配置到XML转交给beanfactory管理,降低耦合度。

文件配置struts的属性值,程序员可以通过它来管理Struts 2? 框架中定义的大量常量。文件是一个标准的properties 文件。

为Struts 2的核心配置文件。文件主要负责管理应用中的Action映射,以及该Action包含的Result定义。

图4-15 工程结构

各类功能设计

图4-16 工程类图

,属性包括:

private int id;etAttribute(messageName, sourceMessage);

到此为止,聊天内容就已经发送,等发言对象端接收并显示消息内容。

在面管理员aaa将发送一段文字给用户zhuwei:

图5-12 aaa向zhuwei发送一条对话

聊天信息显示模块

当聊天对象没有选择聊天对象时,例如用户“zhuwei”开始并没有选择聊天对象“aaa”,但是“aaa”向“zhuwei”发送了消息,此时,系统检测到“zhuwei”有新消息,所有在jsp页面中将把“aaa”的背景色变成红色以提醒“zhuwei”有新消息来自“aaa”,如下图所示。这个功能在辅助功能中介绍:

图5-13 zhuwei检索到aaa有新消息提醒

当选择聊天对象aaa后,jsp开始刷洗界面,并调用JavaScript的方法showSendMessage(),在该方法中还是已post的异步刷新方式,调用后台的。在该action中同样将获取application的消息名称,并根据此消息名称获得相应的对话:

String message = (String) ().getAttribute(messageName);

如果message不等于null,则向jsp中输出message:

().println(message);

在jsp中的回调函数中获得data,并在id为content的div中显示data:$("#content").html(sysBBS + data + "");

Jsp界面每隔1s就刷新界面,调用后台的action获取最新的消息。例如用户“zhuwei”收到来自“aaa”的消息,如下图所示:

图5-14 zhuwei收到aaa的对话并显示在聊天内容中

用户“zhuwei”回复用户“aaa”:

图5-15 zhuwei向aaa回复一条对话

在用户“aaa”的界面中收到来自“zhuwei”的回话:

图5-16 aaa收到zhuwei的回复

至此,聊天信息的显示完毕。

系统消息显示模块

系统消息包括聊天室守则“欢迎来到聊天室,请遵守聊天室规则,不要使用不文明用语。”的显示;还有就是系统公告的显示。

首先聊天室准则的显示,一旦用户登录进入聊天室守则就被显示在聊天内容的下方,它的实现主要是在jsp中,一旦加载了聊天室主页就执行:

var sysBBS = "欢迎来到聊天室,请遵守聊天室规则,不要使用不文明用语。

style='line-height:22px;'>";

$("#content").html(sysBBS);

这两句js代码。而当用户开始选择聊天对象进行聊天时,调用的显示聊天信息的action返回到jsp的data时,sysBBS与data一同显示在聊天内容上:$("#content").html(sysBBS + data + "");

对于系统公告,首先创建了一个实体类Message,其中它的属性包括了所有系统公告的内容;当用户调用登录action时,并且验证成功,登录成功时,向application中添加属性sysMessageMap,并且属性记录用户登录情况:

(), ());

().setAttribute("sysMessageMap", sysMessageMap);

当用户离开聊天室时,向application中得到sysMessageMap属性,并根据用户名得到对应的值,将其修改为(),再次存入application当中。

当用户被管理员踢出聊天时,同样获取sysMessageMap,根据用户名得到相应的值,将其修改成(),再次存入application当中。

下面将用户“zhuwei”退出聊天室,或是将其踢出聊天室,效果如下图:图5-17 aaa将zhuwei踢出聊天室图5-18 zhuwei主动离开聊天室

管理员管理用户模块

当普通用户使用了不文明的语言,管理员有权将其踢出聊天室。当管理员点击“踢下线”操作时,调用后台的,并将踢出用户的id与用户名传参到后台,在action 中,获取application中的userMap,根据id得到相应的session,清除该session 即可踢出用户。但是存在一个BUG,当用户自己退出聊天室时,其session也将被清除,由此导致,jsp在调用js方法check()检测是否被踢出去的时候,出现用户自己退出聊天室时也被当成被踢提示用户“由于您使用不文明语言,被踢下线了!”。解决办法是:

在application中再存入一个属性isKickedMap,关键字存入用户名,值存入数字,1表示在线;-1表示被踢。当用户被踢时,将其用户名改为“*”,并将值改为-1。这样在调用check()方法时,先判断是否存在“*”,并且其值是否为-1,才进行被踢提示,否则不提示:

if("*") != null){

if((Integer)("*") == -1){etAttribute("isKicked", isKickedMap);

if(user == null){

().println("1");

}else{

().println("2");

}

}

}else{

().println("3");

}

辅助功能

显示全部聊天信息:直接调用js方法checkScrollScreen()

if (!$("#scrollScreen").attr("checked")) {

$("#content").css("overflow", "scroll");

} else {

$("#content").css("overflow", "hidden");

crollTop($("#content").height() * 2);

}

setTimeout('checkScrollScreen()', 500);

退出聊天室:释放当前用户的session即可。

提醒用户是否有新信息:每个用户的session当中存入一个call属性,该属性属于List call = new ArrayList();类型;在某个用户对其进行聊天的时候,根据聊天对象的名称在application获取session,在session当中获取call 属性,将发起会话的用户名称添加到call当中:

List call = (List) ("call");

(from);

("call", call);

在当前用户的jsp当中每隔1s就调用一次gainCall()方法,其中调用,在这个action中获取该用户的session的call属性,遍历出所有用户名,将用户名返回到jsp中:

if (data != null) {

data = ();

var strs = new Array(); ss("background-color", "red");

}

}

将id为该用户名的设置为红色;当用户已经读取这些信息之后,依次将call 中的值删除:

List call = (List) ("call");

if(call != null && !()){

for (int i = 0; i < (); i++) {

if (i).equals(to)) {

(i);

i--;

}

}

}

这样在读取完信息之后,就不会让用户名的背景色一直为红色,将恢复原色表示没有最新消息。

图5-19 zhuwei接到aaa的消息提醒

图5-20 zhuwei读取aaa的消息

五、总结与体会

开发中遇到的问题

我在聊天室系统程序设计过程中,遇到的问题大体可分为两类:

A.知道但不会。这类问题往往是我知道应该怎么去设计,但却就是动不了手,要不就错误百出。

B.完全不会。这类问题摆在面前,我只能束手无策,苦恼而又无奈。

问题分析与解决方法

对于第一类问题,其实本质上不存在什么大的问题,都是因为自己平时学习功底不够,还有编程时不够谨慎,

才造成的。人非完人,学过了,有点不懂或迷惑的地方也是很正常的,再说竟然知道怎么做,有希望,那就有信心去解决。我在精神上坚定了,就能耐下性子征服它。通过查阅书本,仔佃分析、思考,请教同学、老师,这类问题还是得到了很好的解决。

对于第二类问题。造成的原因可分两种:一是明显的超过了我的能力范围;二是因为我对问题的认识、分析不够深入造成的假复杂现象。此类问题非要对症下药,效果方最好。如果没有找出原因而盲目努力,是不会有太大效果的。在这类问题出现后,人常常会感到烦躁、泄气,这时便不可能出现解决问题的可能。

怎么办好?我想,最重要的是要能稳住心态,相信自己终究会取得胜利的,同时也必须清楚地认识到自己的能力是有限的。此时,你需要学习知识,更要多借鉴他人在相同问题上的处理方法,弄懂了,一切就都好办了,离解决问题也就不会太远了。

经验与教训

由于能力及时间的关系,这个Java聊天室程序没能达到其要求,很有点失望,很有点遗憾。在建立通信和连接数据库时,虽然很认真地在做,可总还是失败,这也导致了整个聊天室的无法运作(只有界面而已)。事实如此,不再赘言了。这次Java项目的实现,似乎量上过大,然而坚持做下来,还有很有意义和收获的。也许我的所得,对他人而言,可谓不值一提,但对我来说,它们的确让我在思想和能力上,更上了一层楼。

下面我就谈谈我的体会:

Jave与C++语言编程相比,有着本质的不同.前者面向对象,即面向问题而设计程序,后者则是分析问题后,面向问题解决的过程而设计程序.本质的不同,导致程序设计的明显差异.Java设计的程序,通过划分类,通常都显得通俗易懂,条理清晰,而且很简捷.这是C语言所无法比拟的,除非它有很好的数据结构,但必须承认,就算如此,还是难以与之平行的.用Java编写的聊天室,其实也不是那么复杂,但要是换用C语言,我真不知道其工作量有多大了。由此,我看到了Java的优越性,更坚定了我学好Java的决心。用Java解决实际问题,分析问题是至关重要的。分析要合理、全面,只有这样,划分的类就不至于过大或过小。一个复杂的问题,就象这个聊天室吧,一开始不是什么都会做,先就完成简单、容易的,然后再带着小有的成就感,去征服难弄的部分。这种思想是处处适用的。想说的,我已经说完了。最后再说一句:虽然目前我的编程能力很差劲,可我心中已有了目标,也许我走不到终点,但我一定会前进,绝不轻易放弃!梦想来之不易!

参考文献

[1] 李芝兴,杨瑞龙.Java程序设计之网络编程(第2版)[M].北京:清华大学出版社,2009.

[2] 梁勇.细说Java[M].北京:人民邮电出版社,2010.

[3] 杨选辉.信息系统分析与设计[M].北京:清华大学出版社,2007.

[4] 刁成嘉.UML系统建模与分析设计[M].北京:机械工业出版社,2007.

[5] 王珊,萨师煊.数据库系统概论(第4版).北京:高等教育出版社,2006.

[6] 缪勇,施俊,李新锋.Struts2+Spring+Hibernate框架技术精讲与整合案例.北京:清华大学出版社,2015.

[7] allenhui222

Qds05Lub29uZbTkD6u2wkJJESqsHyl3WG2S0feL6ifWRxHeWccp3vW_aghMds15UMcwgUV UeSbuqqSNPQCxMw_PBH6Pii8uma0WK,2015-04-07.

附录

SSH框架的配置文件:

version="" encoding="UTF-8"?>

contextConfigLocation

classpath:/

struts2

struts2

/*

version="" encoding="UTF-8"?>

classpath:com/cust/hbm/orm/*.

true

true

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

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

科研训练 网络聊天室系统设计与实现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浏览器以上版本。 模块功能分析 (一)用户注册登录模块 新用户在使用该聊天室系统时,必须先进行注册新用户操作,后台将注册信息添加到数据库中,用于胡勇登录验证;在注册成功之后再进行登录; 当用户名与密码匹配成功,即可进入聊天室系统。 (二)在线用户显示模块 当用户登录进入系统后,该页面实现在线用户的统计,并将在线用户依次显示出来。如果当前用户属于管理员角色,则在普通用户角色的右边显示“踢下线”链接,如果当前用户属于普通用户角色,则正常显示在线用户名。 (三)用户交流聊天模块 该模块主要负责发送信息内容,选择聊天对象;除此之外,可以修改聊天内容的字体颜色以及发送的表情。发言的颜色和发言的表情通过下拉式组合框实现。发言内容书写完毕后。通过点击“发送”按钮,发送聊天内容。 (四)聊天信息显示模块 当用户选择聊天对象并发送聊天内容后,显示出当前发送的内容以及之前的历史聊天内容,聊天的内容只有对话的两人可见,其他人不可见。当用户退出系统后,再次登录进入聊天室时,两人的对话记录依然存在。

聊天室系统设计报告

青岛科技大学操作系统课程设计 学生班级计算机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)

基于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课程设计报告(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)用户可以配置服务器的真挺端口

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

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

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

网络课程设计实验报告--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 -

聊天室设计报告

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

网络编程_基于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

聊天室设计报告

聊天室设计报告

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

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

完成时间: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聊天室系统程序设计 实验报告 题目:****** 院(系):****** 年级专业:****** 学生姓名:****** 指导老师:****** 开始时间:****** 完成时间:******

第一部分:课程设计总述 课程设计目的: 1.学会Java程序开发的环境搭建与配置,并在实际运用中学习和掌握Java 程序开发的全过程。 2.进一步熟悉掌握Java程序设计语言的基础内容,如用户图形界面设计、 Java多线程编程、Applet程序的设计、文件和网络输入输出流编程、Java 数据库编程等。 3.通过亲自动手写程序,一方面拓展知识面,一方面锻炼调试能力。 课程设计总体要求: 1.问题的描述与程序将要实现的具体功能。 2.程序功能实现的具体设计思路或框架,并检查流程设计。 3.代码实现。 4.程序测试(如程序代码、功能测试、可靠性测试和效率测试等)。 5.设计小结(包括) 课程设计题目: 目标 本软件是一个实用聊天程序。项目要实现以下目标: 1)允许用户注册; 2)允许注册用户登录聊天室; 3)登录用户之间进行聊天文件传输; 4)用户可以更改背景音乐; 用户信息的保存 本软件只是一个聊天室程序,所以用户只要打开程序就可以登录。本软件使用文本文件或者数据库来保存用户数据。 需求分析 对功能的规定

1.系统的用例图(对注册用户) 2.用户注册过程

3.用户登录过程 对性能的规定 由于本软件只是一个聊天室程序,程序只是提供用户之间的聊天和文件传输,故对网络传输数据要求不是很高,只要正常的传输速度就可以了。 需要管理的数据 用户的信息如下:用户名,密码,头像,电子邮件,地址。 4 开发环境 本软件采用Java语言编写,Java语言是一种跨平台的编程语言,所以本软件对操作系统没有特别的要求。而网络传输方面采用TCP/IP网络传输协议或者是RMI。

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

网络编程课程设计 -基于TCP的简易聊天室 一、实验基本信息概要 1.题目要求 熟悉异步网络编程的基本方法,掌握异步网络编程和网络协议设计的方法。要求采用select 模型、WSAAsyncSelect模型、WSAEventSelect模型、重叠模型或完成端口等模型完成编程任务。 2.上机要求 要求采用select模型、WSAAsyncSelect模型、WSAEventSelect模型、重叠模型或完成端口等模型完成下面的任务。 3.题目内容 内容概要:实现一个聊天室,支持多人聊天。也可以增加私聊等功能。 4.开发环境 操作系统:Windows 7 开发语言:C++ 集成开发环境:Microsoft Visual Studio 2010

二、系统简介 1.界面 本软件使用DOS控制台界面,界面风格较为朴素,没用使用复杂的颜色。但是对聊天时界面进行了一定的控制和修正使得界面较为美观,易读。 服务器: 客户端: 2.软件功能 本软件实现了聊天室基本的功能,包括公开聊天,私聊,获取在线用户,更改昵称,获得帮助等。

1)公开聊天 在光标处直接输入消息后按回车即为发送公开聊天,如下图所示。 2)私聊 使用命令【/m 对方UID 消息】即可发送私聊,私聊只有对方可以看到,如下图所示:客户端1,密聊UID为132的用户。 发送后 客户端2,UID为132的用户收到私聊消息。

3)获取在线用户列表 使用命令【/list】即可获得在线用户列表,用户列表会议系统消息的方式返回,如下图所示。命令 发送后 4)更改昵称 使用命令【/name 你的新昵称】即可立即更改昵称,成功修改后服务器会以系统消息的方式返回成功修改的提示。 命令

java实现聊天系统(计算机网络课程设计报告)

计算机网络课程设计报告 学生姓名 学号 班级 指导教师 设计时间

目录 第一章系统描述 设计目的 (3) 系统设计任务 (3) 系统设计分析 (3) 系统功能分析 (4) 第二章功能模块结构 模块划分 (5) 模块结构图 (5) 模块功能 (5) 第三章模块算法实现 服务器实现 (6) 客户端实现 (9) 第四章运行结果 (13) 第五章课程设计总结 (17) 第六章附录 参考文献 (19) 源代码 (19)

第一章系统描述 设计目的 1.学习网络编程的知识,掌握网络编程的方法。 2.进一步掌握编程思想与编程技巧,做到模块化程序设计, 3. 强化语言学习,尤其是Java的图形界面与多线程,需反复练习,熟练掌握。 系统设计任务 聊天室软件的设计与开发:基本要求可以完成群聊、私人聊天,实时发送和显示聊天信息,完成好友列表;进一步要求带表情,附件发送,聊天信息的加密传送,设置黑名单等。 学习通信编程Socket接口编程,使用TCP或UDP接口完成信息传送,利用多线程技术实现服务器端的多个TCP连接的建立。 系统设计分析 一.实现网络聊天室编程,关键在于Socket通信,程序的功能都是在Socket的基础上一层一层增加的。实现Socket通信的基本方法为以下4个步骤。 在客户端与服务器端创建相应的ServerSockot/Socket实例。 打开连接到Socket的输入输出流 利用输入输出流,按照一定的协议(TCP协议)对Socket进行读写操作 关闭输入输出流和Socket 我们要实现的功能都是在第3步对Socket的输入输出流做相应的操作 二.因为是多客户端,所以必须用线程进行控制,不同的处理线程为不同的客户服务,主线程只负责循环等待,处理线程负责网络连接,接受客户输入的信息,再做相应的处理。 系统功能分析

基于linu网络聊天室的设计

计算机科学与技术 计 1341 课程设计任务书 题目基于linux 网络聊天室的设计 实验目的: 《Linux 操作系统课程设计B >〉是一门在课程《Linux 操作系统与程序设 计B 》后独立开设的实验课程。这一门实验课程的开设目的是为了通过学生独 立完成一个基于Linux 平台的较大型应用程序,巩固课堂上学到的 Linux 平 台上的编程规范、技术和技巧,培养学生的编写较大型程序的能力和提高学 生综合应用素质。 本课程设计实验主要围绕Linux 平台上主流的基础技术展开,这些技术 包括:Linux 的进程、线程通信和同步技术;socket 网络通信技术等,这些 技术可以集中体现并应用在并发程序设计中。通过并发程序的设计与开发, 培养学生底层软件开发的能力,并为将来从事 UNIX/Linux 平台开发、嵌入式 开发等相对高端的软件开发工作打下基础。 课程设计的具体内容与要求: 1. 阅读(一个)示例代码,理解并发程序设计并掌握基于 Linux 平台并 发程序设计的方法。 《Linux 操作系统》课程设计报告 院 工商学院 学生姓名: 王慢,韩霞,孙洁茹,李强,蒋涛

5 8 2.在充分理解示例程序的基础上,重新定义和完善程序的功能,定义数 据结构,划分程序的功能模块和接口,明确每个模块功能以及相互关系。 3.完成程序的详细设计和编码,并测试。 4.书写并提交文档 目录 10 19-24

基于linux 网络聊天室的设计 摘要本课程设计主要实现一个Linux 下的局域网聊天工具的设计。该设计主要分为两部分,客户端部分和主机部分。运行服务器端程序可以和任意运行了客户端程序的主机 进行通信,通信内容能够通过终端显示出来。两个部分都使用C语言,利用vi编辑器, 通过Berkeley 套接口编程实现相关功能。 课程设计背景 Linux是一种针对PC计算机和工作站的操作系统,它具有像Windows和Mac那样的功能 齐全的图形用户界面( GUI,Graphical User Interface) 。Linus Torvald 和其它的遍布世界各地的编程人员共同开发的[1]。 提到Linux我们不能不提GNI和Unix。Richard建立的自由软件联盟出版了两种许可证,GNU通用公共许可证(GNU Gneral Public License,GPL) 和GNU?数库通用公共许可证 (GNU Library Gneral Public License,LGPL) 。大部分GNUT程的软件和文档是以GNU! 用公共许可证发行的,但是有一些库是以GNU函数库通用公共许可证发行的。按照GNU S 用公共许可证的规定,Linux 的源代码可以自由获取,这满足了我们学习该系统的强烈愿 望。GPL充分体现了Stallman的思想:只要用户所做的修改是同等自由的,用户可以自由 地使用、拷贝、查询、重用、修改甚至发布这个软件。通过这种方式,GPL保证了Linux (以及同一许可证下的大量其他软件)不仅现在自由可用,而且皮后经过任何修改这后都仍然 可以自由使用。 Unix 是由AT—T贝尔实验室的Ken Thompson和Dennis Ritchie 于1969年在一台已 经废弃了的PDP-7上开发的;最初它是一个用汇编语言写成的单用户操作系统。后来,他 们又在PDP-11上用C语言重新编写(发明C语言的部分目的就在于此),把Unix做成为了一个文本处理系统, 这使Unix 在贝尔实验室得到广泛的应用。Unix 的最初版本免费提供给许多知名的大学的计算机系使用。加州大学伯克利分校的计算机系就是其中的一名,并 地Unix进行了修改增加了许多新的特点,这就是主为人知的BSC版本的Unix。与此同时, 其它独立开发的Unix 版本也开始萌生。Unix 不断发展了, 各种版本被应用到不同的计算机使用。而Linux 最初是专门为基于Intel 的个人计算机设计的。 (1)Linux 的昨天 1991 年, 一名叫Linus Torvalds 的芬兰大学生对Unix 各种版本对于80386 类的机器的

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插件

相关主题
文本预览
相关文档 最新文档