模仿QQ聊天程序

模仿QQ聊天程序
模仿QQ聊天程序

软件项目实训报告书

学院_ 计算机科学与技术_

专业__ _ 软件工程__ _

组长__杜巍巍(第7组)_

成员信息:

目录

1 项目介绍

1.1项目背景及意义 (3)

1.2项目内容及目标 (3)

1.3 关键技术 (3)

2 需求分析

2.1 功能需求 (4)

2.2 界面需求 (5)

2.3 性能需求 (5)

3总体设计

3.1 系统总体设计 (5)

3.2 功能模块设计 (6)

3.3 开发环境 (7)

4 详细设计与实现

4.1服务器端与客户端通信流程图 (8)

4.2 E-R图 (9)

4.3甘特图 (10)

4.4各主要模块流程图 (10)

5 实现与结果

5.1 服务器登陆界面 (13)

5.2清理用户 (14)

5.3 聊天室界面 (15)

5.4 群聊功能实现 (16)

5.5 私聊功能实现 (17)

5.6 文件传输功能实现 (18)

5.7 文件传输取消功能实现 (18)

5.8 窗口抖动功能实现 (19)

6 测试与调试

6.1 测试环境配置 (19)

6.2 功能性测试 (19)

6.3 容错性测试 (20)

6.4 易用性测试 (20)

6.5 文档测试 (20)

7 总结

1.项目简介

1.1项目背景及意义

近年来,随着全球信息化不断发展,网络也在快速发展,各企事业单位处于能高效快速安全的处理企业各种事物的目的,越来越多的企业在其内部使用局域网工作,在局域网的帮助下,企业得以简化信息流程,提高信息交换速度,从而得以提高工作效率。而局域网聊天工具应运而生,所谓局域网聊天工具,是在局域网内部使用,用户之间用来交流的一个工具,一般都具有文本聊天和文件传输功能及聊天记录报讯等功能。局域网聊天工具因其使用简单,系统资源消耗少,安全性高等优点,成为各企事业单位等的局域网内广泛应用的软件之一。

本次项目主要是设计一个基于WINDOWS平台的局域网即时聊天工具,具体是采用C/S模式实现用户之间的通信,并阐述本软件的相关功能,特点及使用方法,并会在之后详细介绍所使用的相关技术,及各个模块的功能和实现方法等。1.2项目内容及目标

本次局域网聊天程序采用了Socket网络编程思想和多线程技术。该聊天软件包括服务器端和客户端两个模块,客户端通过服务器端进行通信。服务器端模块主要实现了服务器的配置和数据的传递;客户端模块主要实现了用户登录、文字聊天,私聊和群聊,文件传输等功能。该软件采用多线程技术支持多用户操作,并采用相关技术进行了优化,加快了文字和文件的传递速度。

该软件能够帮助企业在局域网内搭建起自己的聊天系统,避免企业内部员工使用类似QQ等软件泄露内部信息,但是该软件只实现了文本聊天及文件传输基本功能,还有很多不足之处需要改进。

1.3关键技术

选定WINDOWS平台开发网络通信程序,可以选择WINDOWS的SOCKETS编程接口,Windows Sockets是一套开放的、支持多种协议的Windows下的网络编程接口。现在的Winsock已经基本上实现了与协议无关,你可以使用Winsock来调用多种协议的功能,但较常使用的是TCP/IP协议。Windows sockets无疑是我们进行网络编程的利器。所有的Windows Sockets实现都局域网聊天软件支持流套接口和数据报套接口。应用程序调用Windows Sockets的API实现相互之间的

通讯。Windows Sockets又利用下层的网络通讯协议功能和操作系统调用实现实际的通讯工作。它们之间的关系如图2-1所示

2.需求分析

为了开发出符合要求的网络聊天程序,首先必须知道使用者的需求。对需求的深入理解是开发工作获得成功的前提条件,它对目标项目提出完整、准确、清晰、具体的要求。

2.1功能需求

局域网聊天系统使该系统的用户能够通过客户端登入到该系统,然后直接通过系统实现用户之间的交互。首先,需启动服务器,进行服务器的配置,进行正确的服务器配置和连接并测试成功后,开启服务器。接下来,在客户端,该系统的用户能够通过登陆界面进入,然后直接与系统交互,进行文字传送和文件传输。本系统支持的活动列表如下:

1)用户登陆系统;

2)显示在线用户;

3)用户之间交互,进行文字传送;

4)用户之间交互,进行文件传输;

5)用户可对聊天信息进行保存;

6)文件传输过程中可取消文件传输;

2.2界面需求

设计该系统的界面时主要本着用户易于操作的原则,另外,尽量使界面看起来比较美观。

2.3性能需求

首先,服务器需要同时连接很多个用户,并能提供给这些连接用户所需要的任务处理请求,这就要求服务器能同时处理多个socket连接。服务器模型一般分为循环服务器和并发服务器,循环服务器一次只能处理一个连接,也就是说同一时间只能由一个用户连接到服务器进行消息处理,这种情况是不被允许的。因此我们将采用多线程方式的并发服务器来设计服务器端,这样将能从很大程度上提高服务器的运行效率。

其次,客户端只需要连接到服务器便可以进行任务的处理工作,因此客户端的主要性能要求为图形界面运行的稳定性和对出错信息的及时反映。当一个窗体出现问题时能够及时的处理,让主程序不受影响。

再者,所有的应用程序在运行过程中都会出现出错的情况,这种错误可能来自于程序本身,也可能是用户操作的失误所造成的。当有错误发生时,我们应该有一个很好的机制来保障错误能够及时地被排除。当应用程序出现了错误的时候我们就需要程序能提供给我们出错的信息,这样用户就能够很快的找出具体的出错原因,以便寻找合理的途径去解决它。

3.总体设计

3.1系统总体设计:

本次局域网聊天程序采用了Socket网络编程思想和多线程技术。该聊天软件包括服务器端和客户端两个模块,客户端通过服务器端进行通信。服务器端模块主要实现了服务器的配置和数据的传递;客户端模块主要实现了用户登录、文

字聊天,私聊和群聊,文件传输等功能。

局域网聊天系统功能层次图

3.2功能模块设计:

服务器端:

1. 能够正确的启动服务器。

2. 监听指定端口,等待用户的连接。

3. 显示新连接用户并向新进入好友发出名单。

4. 接受客户端消息,正确处理消息并能发送到客户端。

5. 及时反映出在线人数。

6. 用户断开连接时,服务器能够正确的断开连接,并通知其他用户。

7. 当服务器关闭时,应通知用户。

客户端:

1. 用户能够正确连接服务器,进入系统中。

2. 能显示当前用户在线情况。

3. 能够向群体或个人发送消息。

4. 能够接收用户发送来的消息。

5. 能够对聊天记录进行保存。

6. 能够向用户传送文件。

7. 能够正确断开与服务器的连接。

3.3开发环境

操作系统:Windows7,windows XP

开发平台:VC++ 6.0

开发语言:C++

4.详细设计

4.1服务器端与客户端通信流程图

4.2 E-R图:

4.3甘特图:

4.4各主要模块流程图:

4.4.1用户登陆模块详细设计

用户通过服务器管理,提供用户登录功能,只要是在同一局域网内,用户只需要正确输入服务器IP地址,再起一个自己昵称(昵称不可重复),就可以进入聊天系统中进行相关信息交流。服务器可以查看用户的登录退出情况。流程图如图4.4.1所示:

4.4.1用户登录模块流程图

4.4.2消息传送模块(客户端)详细设计

局域网聊天系统最基本的功能就是进行消息的传送,具体表现为当一个用户需要向另一个用户发送消息的时候,只需要在在线列表中选择该用户,然后在消息发送框中输入要发送的信息点击发送按钮通过服务器的中转转发到接收端的客户端并显示在聊天对话框中,流程图如4.4.2所示:

4.4.2消息传送模块(客户端)流程图

4.4.3数据消息传送模块(服务器端)详细设计

用户之间通过数据消息传送模块建立连接后,才能进行下一步的消息传送,文件传输,窗口抖动等功能。流程图如4.4.3所示:

4.4.3数据消息传送模块(服务器)流程图

4.4.4文件传输模块详细设计

登录成功后用户可能因为某种原因需要进行文件传输,显然文件传输需要点对点的并且使用TCP连接才能保证文件传输的可靠性。一方面用户A点击文件传输按钮并选择发送文件及接受用户,此时该用户其实已经建立了一个监听套接字,而另一方用户B则接受到了文件传输的请求,其可以选择接受或者拒绝。流程图如4.4.4所示:

4.4.4文件传输模块流程图5.实现与结果

服务器端登陆界面:

清理用户:

聊天室界面:

群聊功能实现:

私聊功能实现:

文件发送功能:

文件传输取消功能:

窗口抖动功能实现:

6.测试与调试

本局域网聊天系统采用黑盒测试法

6.1测试环境配置

用两台或两台以上的机器通过交换机等构成一个局域网,进行正确的网络配置,每台机器上都安装Windows操作系统,已经本局域网聊天程序的正确拷贝6.2 功能性测试

其中一台在A机器上启动服务器端软件,开启监听服务。当A和B机器启动了客户端软件后,向服务器进行登录操作,服务器验证了用户登录之后,向局域网发送客户端好友在线情况,A客户端收到服务器发来的信息之后,更新自己的用户列表,选中用户表中的目标,即可进行发消息对话,若B当前为空闲状态,则双方建立连接,开始进行聊天通信,可以进行信息的输入和发送。同时,双方均可进行正确的的接收和回复。

6.3 容错性测试

容错性测试:容错性测试是检查软件在异常条件下的行为,容错性好的软件能确保系统不发生无法预料的事故。

经检查,当用户输入无效操作时,系统总能检测到无效的操作,对用户进行相应的信息反馈,并合理做出内部处理,当系统本身发生错误时,比如网络初始化失败,绑定套接字失败,数据失败等,都会进行相应的正确处理和提示。

6.4 易用性测试

易用性测试没有一个量化的指标,主观性较强,一般认为,如果一个系统可以让用户不查阅手册即可正确使用所有功能,那么这个系统就具有良好的易用性。本聊天程序工具使用过程中提示信息详细,界面友好,操作简单,用户能够很快学会使用。所以具有较好的易用性。

6.5 文档测试

本系统开发过程中,需求分析,报告总结,用户使用说明等,在文档方面比较完整。

7.总结

通过为期两周的项目实训,让我和我的团队深刻的认识了团队精神的重要性。从项目的开始到结束每个人不仅要忙于自己模块任务的实现,也要时刻关注整个项目的进展状况,通过好多次的一起探讨商量和有问题大家一起解决。在整个项目中大家都对VC的网络编程有了更深刻的认识和掌握。通过不断地去图书馆和网上查阅资料,请教同学才使得好多问题得意解决。虽然我们的局域网聊天系统目前不是很完善,还有许多问题没有解决。但是通过这次项目实训获益匪浅。我们下来会继续完善该系统。

用VB做聊天程序的方法

.用VB做聊天程序的方法 2009-03-10 20:38 .用VB做聊天程序的方法 所谓“聊天”是指两个程序能够发送数据给对方。这个程序涉及到数据通讯的知识,仿佛很复杂,不过,由于VB给我们个Winsock控件,问题就变得很简单了。 首先编写“聊天(主机)”程序。在窗体里添加Winsock控件,并设置其Protocol属性为1-SckUDPProtocol,其他属值。接着添加两个标签和两个文本框,设置两个标签的标题属性分别为“接收窗”和“发送窗”;两个文本框的标题属性为编写代码: 1.“聊天(主机)” Private Sub Form—Load() ′设置网络地址 Winsock1.LocalPort=1024 Winsock1.RemoteHost="202.96.6.1" Winsock1.RemotePort=1999 End Sub Private Sub Text1—Change() ′发送用户输入的内容 Winsock1.SendData Text1.Text End Sub Private Sub Winsock1—DataArrival(Byval bytesTotal As Long) Dim rec As String ′接收对方数据并在文本框内显示 Winsock1.GetData rec, vb String Text2.Text=rec End Sub 2.“聊天(副机)” Private Sub Form_Load() ′设置网络地址 Winsock1.LocalPort=1999 Winsock1.RemoteHost="202.96.6.1" Winsock1.RemotePort=1024 其他部分程序与(主机)相同。最后将两个程序存盘,并编译成执行(.Exe)文件。现在就可以使用这个程序进行对

聊天系统-程序设计实践报告

程序设计实践 设 计 报 告 课题名称:网络聊天程序的设计和实现学生姓名: 班级: 班内序号: 学号: 日期:

1.课题概述 1.1课题目标和主要内容 课题实现的主要内容:本程序实现一个简单的网络聊天程序,采用客户机/服务器(Client/Server)模式,将客户端和服务端功能在一个程序中实现,运行时在不同的计算机上打开此程序即可进行聊天。程序实现一对多,多对多聊天功能,满足聊天的基本功能。 课题目标:学会使用MFC搭建基本的对话框及基本控件的使用,了解socket套接字相关知识,实现简单聊天程序。通过实践复习巩固课堂所学的理论知识,提高对所学知识的综合应用能力。 使用的开发平台:Microsoft Visual Studio 2010、windows7 采用的主要工具:计算机、相关图书资料 1.2系统的主要功能 功能列表或功能框图,以及功能的简要说明。

服务器端负责指定ip地址及端口号,建立服务器,有监听、接受、发送消息等功能。客户端通过指定的ip及端口号来连接服务器,有接受和发送消息等功能。 2. 系统设计 2.1 系统总体框架 包括系统框架图或层次逻辑图,设计思想等 首先由服务器在指定的端口开通指定的服务,然后在客户机通过指定服务器地址、端口来连接服务器以获得指定的服务。 服务器端 首先由一个服务器启动一个线程监听来自客户器的Socket连接,当服务器的Socket与客户器的Socket经过TCP协议的3次握手建立了连接后,双方就可以通过这个连接来进行信息的发送和接收,并可以进行文件的传输。在进行程序设计时,对于多个用户连接服务器采用了多线程处理,每个客户端的Socket都启动一个线程来连接服务端的Socket,服务端的Socket接受连接后,通过一个结构体保存已经连接的客户端的地址和套接字,当客户端发送一个信息到服务端,服务器接收信息后,再从结构体中取出已保存的套接字转发所收到

基于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聊天室系统它的开发意义在于为人们之间相互交流提供了一个快捷、方便的应用平台。大型网站可以通过聊天室来提高自身的知名度,增加的访问流量。

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

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

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

计算机网络--简单聊天程序的设计与实现

实验报告 课程计算机网络实验名称简单聊天程序的设计与实现第 1 页 一、实验目的 1.熟悉VisualC++的基本操作;掌握最基本的Client/Server(客户机/服务器)模式 的网络编程技术,并在此基础上实现更为复杂的网络编程。 2.基本了解基于对话框的windows应用程序的编写过程。 3.对于Windows Socket编程建立初步概念。 二、实验内容 1、按实验步骤中参考程序使用VC++设计出程序; 2、在第1步的基础上使用VC++或其他工具设计出一个能实现两个人聊天的网络程序。 三、实验原理 1.Windows Socket和套接字的基本概念; 程序分为服务端和客户端两个,其主要工作过程如图1所示: 服务器端:服务器程序首选启动,通过调用socket()函数建立一个套接字,然后调用bind()函数使套接字和本地网络地址联系在一起,再调用listen()使套接字做好侦听的准备,并规定它的请示队列的长度,之后就调用accept()来接收连接。客户机端:客户机程序也使用socket()建立套接字,然后调用connect()函数和服务器建立连接。连接一旦建立,客户机和服务器之间就可以通过调用read()和write()来发送和接收数据。 最后,等数据传送结束后,双方调用close()关闭套接字。 四、实验环境和实验工具 实验环境:Windows 平台、实验工具:VC++ 五、实验步骤 服务器端程序 (1)运行VC++,选择File --->New,弹出如图2所示的窗口。 (2)创建一个名为CS的工程:选中Projects中的MFC AppWizard[exe],在Project name中 输入Server,在Location中选择存储的目录,如本例中为D:\VC temp\.接着点击OK。 (3)在弹出的窗口中选择Dialog based,然后点击“Next”。出现图3所示的窗口,选择Windows Sockets,并输入服务器,点击“Next”. 如果忘了添加Windows Sockets选项,可以在文件头部添加下列语句进行补救: #include "Winsock.h" #include "Ws2tcpip.h" #pragma comment(lib,"Ws2_32.lib" ) 注:这些语句支持winsock2。 (4)其余窗口一直默认,点击“Next”直至“Finish”

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。

聊天室系统设计报告

青岛科技大学操作系统课程设计 学生班级计算机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,所以代码最好多一点注释... 分数有限,望大家不吝赐教!!问题补充: 需要图形用户界面哦,最好用swing组件 服务器端:采用多线程,可以向客户广播:当前聊天室人数,客户名称列表,客户进入离开提示; 客户端:可以设定昵称,性别,客户间可以私聊 服务器端: import java.awt.*; import java.awt.event.*; import javax.swing.*; import java.io.*; import https://www.360docs.net/doc/0612601137.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){} }

网络聊天室的实现计算机操作系统课程设计

实验报告 | | 实验名称网络聊天室的实现 课程名称计算机操作系统 | | 目录 【1】设计原理———————————————————————4 【2】程序流程图——————————————————————9 【3】设计步骤———————————————————————10 【4】使用方法说明—————————————————————21 【5】实验结果及分析————————————————————24 设计原理 计算机网络技术发展至今已经大大超越了人们当初的预想,无论是人们日常的工作还是学习,我们都越来越多的依靠到互联网。各种实时性的聊天娱乐软件也同时诞生,而且为我们的即时通讯带来了众多的方便,比如说大家所熟知的腾讯QQ、微软的MSN、移动的Fetion等,都是做的比较成功的实时聊天工具。随着网络的日益普及,各种聊天工具也层出不穷,接下来的课程设计就是针对一个简单的网络聊天程序,利用MFC为开发工具,实现基本的通讯功能。 此程序主要分为两部分:服务器端和客户端。服务器端用于提供一个网络端口,等待客户端发出请求,登录到此服务端,然后进行网络通讯和消息的转发;客户端可通过服务器端的IP地址发送连接请求,然后登陆聊天室。在服务器端的成员列表栏中会显示在线的所有人名单,有人退出聊天室,成员列表会自动除名。服务器端同时也提供了成员之间的私聊功能,此时服务器端作为一个转发站,进行消息的转发。整个程序的主体使用了CSocket 类的方法,实现了网络通讯聊天。 整个程序设计为两个部分:服务器(ChatServer)和客户端(Chat)

多人聊天的关键在于要将每个客户端发送过来的消息分发给所有其他客户端,为了解决这个问题,在服务器程序中建立一个套接口链表,用来保存所有与客户端建立了连接的服务端口。下面描述了多人聊天的实现原理: 当客户端Client N向对应的服务端口N发送了消息Message,服务端口N将Message 复制给所有套接口列表(USERLIST)中的套接口缓冲区,然后向每个服务端口发送WRITE 消息,使每个服务端口将Message发送给对应的客户端。这样,所有客户端就都获得了Message消息,实现了多人聊天功能。 BOOL CClientSocketList::Sends(char *buff,int n) {CClientSocket *curr=Head; while (curr) {curr->Send(buff,n); curr=curr->Next;} return true;} USERLIST表时多人聊天程序的核心,它是一个动态变化的链表,为空表示没有客户端建立了连接,不为空时每个元素就代表有一个客户端与服务器建立了连接。 以下程序是私聊功能的实现: BOOL CClientSocketList::OnlySend(char *buff,int n,int who) { CClientSocket *curr=Head; while (curr && who>0) {curr=curr->Next; who--;} curr->Send(buff,n); return true;} 以下是此程序的效果截图:

聊天室设计报告

网 络 聊 天 系 统 设 计 报 告 组长:靳子豪 组员:凯强、许玉军、王明明 完成时间: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聊天室系统的设计与实现

目录 第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 -

java简单聊天小程序

网络编程java简单聊天小程序[下次修改成多线程的,这个必须等待对方输入结束,有机会修改成可视化窗口] By 刘汪洋 写入正确的ip地址即可正常用当然目前只停留在命令行界面 还没有写成可视化窗口界面 运行时请带上参数 如java TransServer 张三 Java TransClient 李四 ( 和刘正南在局域网试验的截图成功 这是修改后的 加上了姓名! ) (修改前的截图)

代码: 客户端: package com.baidu.chat; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.PrintWriter; import https://www.360docs.net/doc/0612601137.html,.Socket; import https://www.360docs.net/doc/0612601137.html,.UnknownHostException; // 简单聊天小程序客户端 public class TransClient { public static void main(String[] args)

{ if(args[0]==null) args[0] = "他"; startClient(args[0]); } private static void startClient(String name) { Socket sk = null; BufferedReader bufr = null; try { sk = new Socket("127.0.0.1",10000);// 1 创建 socket服务 bufr = new BufferedReader(new InputStreamReader(System.in));// 2 获取录入键盘 PrintWriter out = new PrintWriter(sk.getOutputStream(),true);// 3 获取输出流true表示自动刷新 BufferedReader bufIn = new BufferedReader(new InputStreamReader(sk.getInputStream()));// 4 获取输入流 // 5 发送获取 String text_send = ""; String text_get = ""; String ServerName = ""; System.out.print("聊天已开启..."+"\r\n"+"我说:");

聊天室程序设计报告

实验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()才返回,否则将阻塞。

实现一对一聊天程序

实现一个一对一的聊天程序 一实习题目 实现一个一对一的聊天程序。其基本过程如下:服务器首先启动,创建套接字后等待客户的连接;客户启动以后,创建套接字,然后和服务器建立连接;连接建立后,客户机和服务器可以通过建立的套接字连接进行通信。服务器和客户端可以是一台电脑上的两个进程,也可以分别部署在两台电脑上。 二原理概述 本题是一个简单的聊天室程序,采用客户/服务器模式,分为客户端程序和服务器端程序。由于服务器只能支持一个客户,实际上是一个点对点通信的程序。客户端程序和服务器程序通过网络交换聊天字符串内容,并在窗口的列表框中显示。重点是流式套接字对象的使用,处理网络事件的方法。本此课程设计是利用网络聊天程序的基本设计思想,并按照网络通信的协议设计出来的一个基于UDP 的网络聊天程序。端口号拼接到IP地址即构成了套接字(socket)。套接字(socket)=(IP地址:端口号)。在网络编程时常常把套接字作为应用进程和运输层协议之间的接口。当应用进程(客户或服务器)需要使用网络进行通信时,必须首先发出socket系统调用,请求操作系统为其创建一个“套接字”。这个调用的实际效果是请求操作系统把网络通信所需要的一些资源分配给该应用进程。操作系统为这些资源的总和用一个叫做套接字描述符的号码来表示,然后把这个套接字描述符返回给应用进程。此后,应用进程所进行的网络操作都必须使用这个套接字描述符。 三设计方案 1 问题分析: 本次计算机网络与通信实习的任务是设计一个一对一的聊天程序。根据课程设计要求程序采用客户/服务器模式,分为客户端程序和服务器端程序。其基本过程如下:服务器首先启动,创建套接字后等待客户的连接;客户启动以后,创建套接字,然后和服务器建立连接;连接建立后,客户机和服务器可以通过建立的套接字连接进行通信。服务器和客户端可以是一台电脑上的两个进程,也可以分别部署在两台电脑上。客户端程序和服务器程序通过网络交换聊天字符串内容,并在窗口的列表框中显示。重点是流式套接字对象的使用,处理网络事件的方法。 2 设计思路: 程序采用VB语言编写,运用UDP面向无连接数据报协议完成实验,程序的核心是运用的空间为VB网络编程中的Winsock控件。数据之前不必建立连接,只需要将Winsock绑定到一个端口上,其他无连接协议的Winsock若想向此处发送数据,需要指明地址和端口。 (1)将RemoteHost 属性设置为另一台计算机的名称或者IP地址。 (2)将RemotePort 属性设置为另一台计算机Winsock控件所绑定的LocalPort 属性。 (3)调用Bind 方法,指定使用的LocalPort。 3 系统模块结构: 根据程序设计要求,设计出整个网络聊天程序的设计框图。

聊天室的设计与实现

Java 聊天室的设计与实现 学院:计算机学院 专业: 班级: 学号: 姓名:秦向红 指导老师: 2014年11月

1. 设计背景 (1) 2. 设计环境 (1) 3. 设计目的 (1) 4. Socket介绍 (1) 5. Socket的通信机制图: (3) 6.程序的设计 (4) 6.1服务器的设计 (4) 6.2客户端的设计 (7) 7. 测试及运行结果 (10) 7.1服务器的测试 (10) 7.2客户端的测试 (10) 8.设计总结 (13) 9. 参考文献 (14) 10.附代码 (14) 10.1服务器代码 (14) 10.2客户端的设计 (17)

Java 聊天室的设计与实现 1.设计背景 在互联网如此发达的今天,即时通信工具已经成为我们如常生活中必不可少的一部分。人们对网络的依赖越来越多,越来越离不开网络,而由此产生的聊天工具也越来越多,类似有QQ、MSN、、微信等,网络聊天使网络聊天系统发展的日新月异,由此产生制作了一个简单的聊天功能的网络聊天程序,由此此设计我还可以更好的学习网络软件的编程知识。 Java语言是当今流行的网络编程语言,它具有面向对象,与平台无关,安全,多线程等特点。使用java语言不仅可以实现大型企业级的分布式应用系统,还能够为小型的的,嵌入式设备进行应用程序的开发。面向对象的开发是当今世界最流行的开发方法,它不仅具有更贴近自然地语义,而且有利于软件的维护和继承。 此次设计的题目为聊天室,可以巩固所学的java语言基础知识,增进java语言的编辑基本功,拓宽常用类库的应用,使我们通过教学环节与手段,把所学的课程及相关知识加以融会贯通,全面理解网络编程的含义。 2.设计环境 操作系统:Window 8 CPU:1.80GHz 内存:4.00GB 硬盘空间:80G 开发工具:JDK1.5、Eclipse 3.设计目的 聊天室虽然程序简单,但是在设计与实现的过程中能够充分学到基于Socket的网络编程的技术,使我掌握网络编程的服务的技术,能够充分利用我近期学到的java编程语言。实现聊天功能Client/Server的面向连接的编程技术。使用多线程进行多个客户端和服务器的连接,实现数据的读取与输入。 实现网络聊天系统的设计与实现,让我们掌握网络编程的服务的技术,让同学们更加深刻的了解,掌握这方面的知识 4.Socket介绍 Socket的英文原义是“孔”或“插座”。作为BSD UNIX的进程通信机制,取后一种意思。通常也称作"套接字",用于描述IP地址和端口,是一个通信链的句柄。在Internet 上的主机一般运行了多个服务软件,同时提供几种服务。每种服务都打开一个Socket,并绑定到一个端口上,不同的端口对应于不同的服务。 Socket非常类似于电话插座。在这里,我以一个国家级电话网为例更加清楚的讲解一下Socket。电话的通话双方相当于相互通信的2个进程,区号是它的网络地址;区内一个

在线聊天室需求分析

在线聊天室需求分析 需求分析是程序设计中最关键的一个步骤,是其他步骤的基础。其主要任务是“为了解决这个问题,目标系统必须做什么”。主要确定目标系统具有那些功能。在这个步骤里,程序员在用户那里搜集所有的对将要开发的系统的需求信息,并且把这些信息编写成为用户和程序员都可以认可的需求说明书。 1 可行性研究 1)技术可行性:因为该系统是要求是实现动态交互式的页面设计及对数据库的 查询、插入、删除等操作,而本系统采用ASP技术设计网页 及使用ACCESS数据库来存储数据,所以技术上是可行的。 2) 经济可行性:开发本系统为用户和管理员带来了极大的方便,而且所用的 人力、物力、技术、资金等的花费不大,所以今后获得的经济 效益一定会大于开发成本。 3) 操作可行性:由于本系统安装了ACCESS,IIS所以只要打开IE浏览器, 输入IP地址即可进入本系统,操作方便。 2 聊天室运行环境 ASP要浏览必须经过服务器解析才能够浏览得到。如果是将asp文件上传到支持asp的服务器,那就能够直接浏览。但是如果是在本机上,那就必须将电脑设置成为服务器。单机并不需要设置成为局域网,只需要设置成为单机服务器就可以。 ASP运行所需的环境如下: ·Microsoft Internet Information Server version 3.0/4.0 on Windows NT Server ·Microsoft Peer Web Services Version 3.0 on Windows NT Workstation ·Microsoft Personal Web Server on Windows 95/98/2000/XP 也就是说平常所使用的window95/98/2000/XP都可以运行asp,只需要将其设置为单机服务器就行了。归结一点:window95/98,需要安装PWS;window2000/XP,需要安装IIS。才能发挥其asp的作用。

相关文档
最新文档