局域网聊天系统的设计与实现-项目开发总结报告
- 格式:doc
- 大小:51.50 KB
- 文档页数:6
局域网聊天系统设计一、概述:局域网聊天聊天希望基于网络编程的基本思想,目前只能应用局域网之间的通信,本软件的设计是基于企业内部网的设计理念,因此在软件运行之前必须确认所属局域网的ip地址范围,本程序基于172.19.12.3---172.19.12.255范围内来实现局域网之间进行通信的。
如果你所处的局域网友所变化,那么就要在resource.java文件中适当的修改IP地址范围:具体的修改如下图所示:你只需要填写你所在的局域网的网段就可以了;二、功能模块概述(1)显示局域网内的用户在本模块中涉及到局域网的用户的显示问题,这里用到了tree来显示用户列表,即是显示在本局域网内所有的在线用户;(2)系统的搜索模块该模块主要是扫描当前局域网的在线用户,并将其加入到好友列表中。
(3)聊天模块主要用于显示聊天的两个用户之间的通信信息:如下图所示三、详细功能设计(1)公共Dao设计主要用于数据库的连接显示,如添加用户,删除用户等基本操作;private Dao(){try{Class.forName(driver);if(!dbExists()){conn=DriverManager.getConnection(url +";create=true");createTable();//创建表}else{conn=DriverManager.getConnection(url);addDefUser();}}catch(Exception e){e.printStackTrace();JOptionPane.showMessageDialog(null, "数据库连接异常,或者本软件已经运行");}}具体内容请见DAO.java文件的详细设计;(2)主界面的设计主界面主要包括显示当前主机用户的主机名,以及tab控件组成的两个功能模块;好友列表和搜索局域网内IP;主界面显示的关键代码:public QQ(){//负责界面的显示/*界面设计需要注意的事项:* 初始化控件是一定要实例化该对象并设置其显示方式,比如chatree要实例化不然就无法显示** */super(new Frame());//this.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);//数据库初始化addWindowListener(new FrameWindowListener());// 添加窗体监视器dao = Dao.getDao(); //获取Dao的实例try {// 启动通讯服务端口ss = new DatagramSocket(1111);//创建数据报套接字} catch (SocketException e2) {if (e2.getMessage().startsWith("Address already in use")) JOptionPane.showMessageDialog(null, "服务端口被占用,或者本软件已经运行。
java实训聊天系统报告总结一、项目背景随着互联网的快速发展,人们在日常生活和工作中越来越依赖于网络。
在线聊天成为了人们日常交流的重要方式。
为了满足不同用户对聊天系统的需求,本次实训项目选择开发一款功能完善的Java聊天系统。
二、项目目标1. 设计一款用户界面友好,操作简单的聊天系统。
2. 实现用户的注册和登录功能,保障系统的安全性。
3. 提供实时聊天功能,用户可以通过系统进行文字、图片的交流。
4. 支持多人群聊、私聊的功能。
5. 实现聊天记录的存储和查看。
三、系统架构1. 前端设计本次项目的前端开发使用Java的Swing库进行界面设计,保障用户操作的友好性和系统的易用性。
2. 后端开发后端使用Java语言进行开发,使用Socket实现实时通讯功能,使用MySQL进行用户数据的存储和管理。
四、功能实现1. 用户注册和登录功能用户可以通过系统注册新账号,并使用已有账号进行登录。
系统会对用户输入的信息进行验证,保障系统的安全性。
2. 实时聊天用户可以通过系统进行实时的文字、图片交流,确保用户之间的沟通顺畅和效率。
3. 多人群聊、私聊功能系统支持多人同时进行群聊,同时也支持用户进行私聊。
用户可以根据自己的需求选择不同的聊天方式。
4. 聊天记录存储和查看系统会将用户的聊天记录进行存储,并提供查看功能,用户可以随时查看自己的聊天记录。
3. 数据库设计设计数据库存储用户的基本信息、聊天记录等数据,确保数据的安全性和完整性。
4. 功能实现实现用户注册、登录、实时聊天、群聊、私聊等功能,并保障系统的稳定性和安全性。
六、总结本次实训项目成功设计并开发了一款功能完善的Java聊天系统,满足了用户对聊天系统的基本需求。
通过本次项目的实训,加深了我们对Java语言、数据库设计和网络通讯的理解和实践能力,为我们以后的开发工作积累了丰富的经验。
七、展望在今后的工作中,我们还可以进一步完善系统功能,例如增加语音、视频通话功能,优化系统的性能和用户体验,使系统更加满足用户的需求。
第一章绪论1.1 课题背景随着Internet的不断发展普及,网络通讯成为人们生活中的一部分。
网络聊天已和手机等一样,成为人们运用最为广泛的通信工具之一。
即时通讯(Instant Messenger,简称IM)软件可以说是目前我国上网用户使用率最高的软件,无论是老牌的ICQ,还是国内用户量第一的腾讯QQ,以及微软的MSN Messenger都是大众关注的焦点,它们能让你迅速地在网上找到你的朋友或工作伙伴,可以实时交谈和互传信息。
而且,现在不少IM软件还集成了数据交换、语音聊天、网络会议、电子邮件的功能。
IM软件的历史并不久远,但是它的出现,就立即受到大家的喜爱,并风靡全球。
在它的发展史上,以色列人是功不可没的。
正是四位以色列年轻人,在1996年7月成立的Mirabilis公司,并于同年11月推出了全世界第一个即时通讯软件ICQ,取意为“我在找你”——“I Seek You”,简称ICQ了。
直到现在,ICQ已经推出了它的2002a版本,在全球即时通讯市场上占有非常重要的地位。
目前,国内最为流行的即时通讯软件是OICQ(简称QQ)。
它以良好的中文界面和不断增强的功能形成了一定的QQ网络文化。
Messenger虽出道较晚,但依托微软的强大背景,实力也不可小视。
作为Windows XP的一部分,Messenger 整合了操作系统的许多功能,体现出了微软的真正实力所在,如多种形式的聊天选择、多人的单窗口讨论式交流以及充分的文件与桌面共享功能等。
它的令人耳目一新的中文界面和注册方式,连同它强大的功能,着实吸引了众多的眼球的注视,此外还有许多有特点的IM软件。
我们经常听到TCP/IP和UDP(用户数据报协议)这两个术语,它们都是建立在更低层的IP协议上的两种通讯传输协议。
TCP/IP是以数据流的形式,将传输数据经分割、打包后,通过两台机器之间建立起的虚电路,进行连续的、双向的、严格保证数据正确性的文件传输协议。
基于局域网的视频聊天室系统的设计与实现摘要视频聊天系统作为一种新型的通信和交流工具,突破了地域的限制,可以提供更为便捷、灵活、全面的音、视频信息的传递和服务,具有极其广泛的发展前景。
本文介绍了采用Microsoft Visual C++ 6.0编程开发视频聊天系统的一套比较常用的解决方案。
文字聊天采用TCP模式;语音视频聊天采用UDP模式,在客户端之间点对点的进行。
在该方案中,通过函数库VFW来实现视频捕获、影像压缩以及影像播放。
微软公司提供的专门用于视频捕获开发的工具包VFW,为在Windows操作系统中实现视频捕获提供了标准的接口,从而大大降低了程序的开发难度。
在视频传输方面,则通过组建视频帧,将位图形式的视频帧压缩成帧格式的Mpeg4流,传输到客户端后,解压并显示影像。
同时,在本方案中,采用了线程来实现语音录制和语音回放,最终实现了通过服务器中转的文字聊天、点对点的语音视频聊天。
关键词:文字聊天;VFW;视频捕获;视频传输;语音录制;语音回放The Design and Realization of LAN-Based Video Chat RoomSystemAbstractAs a new tool about communication, video chatting system has broken through geographical restrictions, has provides more convenient, flexible and complete transmission and service. Furthermore, it has a very bright future.The common solution about how to develop a video chatting system is introduced by the Microsoft Visual C + + 6.0 programming. TCP model is used in the text chatting and UDP for the point-to-point video chats between the Clients. In this plan, Video Capture, Video Compression Manager and DrawDib are realized by the functions of VFW Library. The special kit VFW (Video for Windows) in video capture offered by Microsoft Corporation, has provided a standard interface for video capture in Windows Operating System and thus greatly reduced the hardship of programming. In video transmission aspect, it requires a video frame which is compressed the video frame of bitmap into Mpeg4 steam of frame form. Then it will be decompressed into images since it has been arrived the Client. Meanwhile, the thread is used to achieve audio recording and replaying. Finally, it has realized the text chatting through a server to transit, the point-to-point audio and video chats.Key words:text chatting; VFW; Video Capture; video transmission; audio recording;audio playing目录论文总页数:24页1 引言 (1)1.1 课题背景 (1)1.2 国内外研究现状 (1)2 理论知识介绍 (1)2.1 VFW简介 (1)2.2 线程的实现方法 (4)3 需求分析 (5)3.1 软硬件环境 (5)3.2 需求分析 (5)4 系统结构 (7)4.1 硬件结构 (7)4.2 软件结构 (7)4.2.1 功能需求 (7)4.2.2 系统功能模块图 (8)4.3 系统各模块流程图 (8)5 系统的详细设计 (10)5.1 文字聊天 (10)5.1.1 TCP套接字的运用 (10)5.1.2 文字聊天实现 (11)5.2 语音视频聊天 (13)5.2.1 UDP套接字的运用 (13)5.2.2 视频的捕获 (14)5.2.3 捕获窗口 (16)5.2.4 视频捕获驱动 (18)5.2.5 语音录制 (18)5.2.6 语音回放 (19)5.2.7 视音频的传输 (20)结论......................................................................................................... 错误!未定义书签。
第1篇一、实训背景随着互联网技术的飞速发展,聊天程序作为一种重要的网络应用,已经深入到人们的日常生活和工作中。
为了提高学生的实践能力,培养适应社会需求的技术人才,我们开展了本次聊天程序实训。
本次实训旨在通过实际编程,让学生掌握聊天程序的设计与实现,提高学生的编程能力和团队协作能力。
二、实训目标1. 理解聊天程序的基本原理和设计思路。
2. 掌握常用的编程语言和开发工具。
3. 能够独立设计和实现简单的聊天程序。
4. 培养良好的编程习惯和团队协作精神。
三、实训内容本次实训主要分为以下几个阶段:1. 需求分析在实训开始前,我们对聊天程序的需求进行了详细的分析。
主要包括以下功能:- 用户注册与登录- 文字消息发送与接收- 图片消息发送与接收- 多人聊天功能- 消息记录查看2. 系统设计根据需求分析,我们设计了以下系统架构:- 客户端:负责用户界面展示、消息发送与接收。
- 服务器端:负责用户管理、消息转发、数据存储等。
3. 技术选型在本次实训中,我们选择了以下技术:- 编程语言:Java- 开发工具:Eclipse- 数据库:MySQL- 消息传递:WebSocket4. 系统实现4.1 客户端实现客户端主要实现以下功能:- 用户注册与登录界面- 消息发送与接收界面- 图片消息发送与接收界面- 多人聊天界面4.2 服务器端实现服务器端主要实现以下功能:- 用户管理:包括用户注册、登录、信息修改等。
- 消息转发:负责将客户端发送的消息转发给对应的接收者。
- 数据存储:将用户信息和聊天记录存储在数据库中。
5. 系统测试在系统实现完成后,我们对聊天程序进行了详细的测试,包括功能测试、性能测试和安全性测试。
测试结果表明,聊天程序能够稳定运行,满足需求。
四、实训成果通过本次实训,我们取得了以下成果:1. 学生掌握了聊天程序的基本原理和设计思路。
2. 学生熟练掌握了Java编程语言和Eclipse开发工具。
3. 学生独立设计和实现了简单的聊天程序。
一、设计思想本课程设计主要是基于UDP的并用Java实现的简单的聊天程序。
UDP 用户数据报是在运输层的端到端抽象的逻辑信道中传送的。
UDP 在传送数据之前不需要先建立连接。
对方的运输层在收到 UDP 报文后,不需要给出任何确认。
虽然 UDP 不提供可靠交付,但在某些情况下 UDP 是一种最有效的工作方式。
虽然UDP 用户数据报只能提供不可靠的交付,但 UDP 在某些方面有其特殊的优点,它有即时通信的功能。
比如说,使用聊天程序聊天的时候,省去的了跟对方通信的时候的链接的麻烦,直接进行通信。
UDP 只在 IP 的数据报服务之上增加了很少一点的功能,即端口的功能和差错检测的功能。
UDP 使用尽最大努力交付,即不保证可靠交付,同时也不使用拥塞控制。
UDP 是面向报文的。
UDP 没有拥塞控制,很适合多媒体通信的要求。
UDP 支持一对一、一对多、多对一和多对多的交互通信。
发送方 UDP 对应用程序交下来的报文,在添加首部后就向下交付 IP 层。
UDP 对应用层交下来的报文,既不合并,也不拆分,而是保留这些报文的边界。
应用层交给 UDP 多长的报文,UDP 就照样发送,即一次发送一个报文。
接收方 UDP 对 IP 层交上来的 UDP 用户数据报,在去除首部后就原封不动地交付上层的应用进程,一次交付一个完整的报文。
Socket又称作套接字,它是使用标准Unix 文件描述符(file descriptor) 和其它程序通讯的方式。
使用send()和recv()让你更好的控制数据传输。
在Java 网络编程中,socket相当于应用程序的港口码头;在计算机网络中,套接字由ip地址和端口号组成,为进程之间通信提供地址。
两个主机进行通信实际上就是两个主机中的应用进程互相通信,应用进程之间的通信又称为端到端的通信。
为应用进程之间的通信提供运输服务的是运输层的运输协议,运输层需要有两种不同的运输协议,即面向连接的TCP和无连接的UDP。
局域网聊天室系统的设计与实现介绍局域网聊天室系统是一种在同一个局域网内,让用户可以实现即时通讯的应用程序。
该系统可以实现用户之间的文本、图片、声音等多媒体文件的传输和交流。
本文将介绍局域网聊天室系统的设计思路和具体实现。
系统设计功能需求局域网聊天室系统主要包括以下功能需求:1.用户注册和登录:用户可以通过注册账号和密码,然后通过登录来访问系统。
2.创建聊天室:用户可以创建一个新的聊天室,并设置聊天室的名称和属性。
3.加入聊天室:用户可以通过输入聊天室的名称或者通过搜索来加入到指定的聊天室中。
4.聊天功能:用户可以在聊天室中发送和接收文本消息、图片、声音等多媒体文件。
5.文件传输:用户可以通过系统传输文件,包括发送和接收文件。
6.群组管理:用户可以在聊天室中建立和管理用户群组。
系统架构局域网聊天室系统的系统架构可以分为前端和后端两个部分。
1.前端:前端主要负责用户界面的展示和用户输入的响应。
用户可以通过前端页面来进行注册、登录、创建聊天室、加入聊天室、发送消息等操作。
前端还需要与后端进行通信,传输数据和接收服务器返回的结果。
2.后端:后端主要负责处理前端发起的请求,并进行相应的处理和返回结果。
后端需要处理用户的注册和登录请求,聊天室的创建和加入请求,消息的传输等功能。
同时,后端需要进行用户的身份验证、聊天室的资源管理、消息的传输和实时更新等工作。
技术选型•前端界面:使用HTML、CSS和JavaScript等前端开发技术,可以选择Vue.js或React等前端框架。
•后端开发:可以使用Java、Python、Node.js等后端开发语言来实现服务器端业务逻辑和数据库操作。
•数据库:可以选择关系型数据库MySQL或非关系型数据库MongoDB来存储用户信息、聊天记录等数据。
•通信协议:可以选择WebSocket协议来实现实时通信功能。
系统实现以下是局域网聊天室系统的实现步骤:1.搭建前端界面:使用HTML、CSS和JavaScript等前端开发技术,搭建用户界面,包括登录、注册、聊天室列表、聊天室页面等。
第1篇一、项目背景随着信息技术的飞速发展,网络已经成为企业、学校、家庭等各个领域不可或缺的一部分。
为了提高资源利用率,实现资源共享,提升工作效率,我公司决定构建一个高效、稳定、安全的局域网。
本项目旨在为公司提供一个高速、便捷的网络环境,以满足日益增长的网络需求。
二、项目目标1. 实现公司内部资源共享,提高工作效率。
2. 建立安全、稳定的网络环境,保障信息安全。
3. 提供高速的网络接入,满足员工日常办公需求。
4. 为公司未来发展预留充足的扩展空间。
三、项目实施过程1. 需求分析在项目启动前,我们对公司内部网络需求进行了全面分析。
主要包括以下内容:(1)用户数量:根据公司员工数量,预计网络用户约为100人。
(2)网络应用:主要包括办公自动化、数据传输、视频会议、远程访问等。
(3)网络速度:要求网络带宽不低于100Mbps。
(4)安全性:确保网络数据安全,防止非法入侵。
(5)可扩展性:网络设备应具备良好的可扩展性,以满足公司未来发展需求。
2. 网络规划根据需求分析,我们制定了以下网络规划:(1)网络拓扑结构:采用星型拓扑结构,核心交换机连接各个部门交换机,部门交换机连接终端设备。
(2)网络设备选型:核心交换机采用高端交换机,部门交换机采用中端交换机,终端设备采用普通交换机。
(3)网络协议:采用TCP/IP协议,确保网络通信的稳定性。
(4)IP地址规划:采用私有IP地址,实现内部网络互通。
3. 设备安装与调试(1)设备采购:根据网络规划,采购了核心交换机、部门交换机、终端设备、光纤模块、路由器等网络设备。
(2)设备安装:将网络设备按照规划进行安装,确保设备连接正确。
(3)网络调试:对网络设备进行配置,包括IP地址分配、路由设置、安全策略等。
4. 网络测试(1)连通性测试:检查网络设备之间是否能够正常通信。
(2)速度测试:测试网络带宽,确保满足需求。
(3)安全性测试:检查网络安全性,防止非法入侵。
四、项目成果1. 网络建设完成后,公司内部实现了高速、稳定的网络环境。
局域网聊天系统的设计与实现-项目开发总结报告局域网聊天系统的设计与实现-项目开发总结报告局域网聊天系统的设计与实现项目开发总结报告 1.1需求分析本项目的名称为“局域网聊天系统的实现与设计”,为本学期的项目实践课题。
本项目将运行在Windows XP下操作系统中,在Visual C++ 环境下,由服务器对客户端提供各种数据的记录、存储、认证等功能,并在客户端实现基本的即时聊天功能。
软件的总体要求:实现用户在局域网内可以点对点的聊天,可以群聊,发送表情图片等等功能。
编写这份开发总结报告一方面可以让开发者总结开发以来的问题,另一方面可以给领导了解开发过程。
Visual C++是一个功能强大的可视化应用程序开发工具,用于Windows环境下32位的应用程序的开发,是计算机界公认的最优秀的应用开发工具之一。
在提供可视化的编程方式的同时,Visual C++也适用于编写直接对系统底层操作的程序,生成代码的质量也优于其它的开发工具。
在Visual C++环境下,利用Microsoft的基本类库MFC(Microsoft Foundation Class Library),可以使用完全的面向对象的方法来进行Windows 95/98/NT应用程序的开发,使得Windows程序员从大量的复杂劳动中解救出来,体会到真正的程序语言的强大功能和良好的灵活性。
Visual C++编程是一个面向对象的程序设计方法。
同传统的结构化程序设计方法相比,它缩短软件的研制时间,提高软件的开发效率,使程序员可以更好地理解和管理庞大而复杂的程序。
面向对象的程序设计吸取了结构化程序设计的精华,它利用了人们根据对事物分类和抽象的倾向,引入了类和对象的概念,具有封装性(数据抽象)、继承和多态的特点。
与结构化程序设计不同的是,面向对象程序设计是用类抽象代表现实的实体,用类之间的继承关系表示程序设计的抽象过程。
函数只是对数据的操作,没有数据的概念,而类是数据和数据操作的集合,由于面向对象的程序设计方法非常近现实,所以越来越流行。
摘要在网络越来越发达的今天,人们对网络的依赖越来越多,越来越离不开网络,由此而产生的聊天工具越来越多,例如,国外的ICQ、国内腾讯公司开发的OICQ。
基于Java网络编程的强大功能,本次毕业设计使用Java编写一个聊天系统。
一般来说,聊天工具大多数由客户端程序和服务器程序外加服务器端用于存放客户数据的数据库组成,本系统采用客户机/服务器架构模式通过Java提供的Socket类来连接客户机和服务器并使客户机和服务器之间相互通信,由于聊天是多点对多点的而Java提供的多线程功能用多线程可完成多点对多点的聊天,数据库管理系统用SQL Server2000完成并通过JDBC-ODBC桥访问数据库。
本系统建立在JAVA平台上,系统的设计使用了面向对象技术和面向对象的设计原则。
系统采用C/S结构,客户端与客户端以及客户端与服务器端之间通过Socket传送消息。
使用JAVA语言编写,开发工具采用Eclipse。
服务器端设计与实现过程中,采用了多线程技术,可以在单个程序当中同时运行多个不同的线程,执行不同的任务。
大大增强了程序对服务器资源的利用。
聊天系统完成后将可进行多人对多人的聊天,对好友进行添加、删除,对新用户的注册,发送消息、接受消息等等功能。
关键字:多线程;客户机/服务器;JAVA ; Socket ; Eclipse ; TCP/IPAbstractas the network become more and more developed, people become more and more lean to the network, and can not leave with out it. This caused the chat materials become more numerous, as the overseas ICQ system, the OICQ system that invented by Tencent Co., and so on. So we create a network chat medium just like the QQ.Java network programming based on the power, the use of Java designed to prepare graduates a chat system.In general, the majority of the chat tool for client and server program in addition to server-side storage of customer data for the database,the system uses a client / server architecture model the adoption of Java provided Socket class connect client and server and between the client and server communicate with each other, as the chat is to provide point-to-multipoint and multi-threaded Java function to be completed by using multi-threaded chat and more point-to-multipoint, database management system with SQL Server2000 the completion and adoption of JDBC-ODBC Bridge access the database.The system built on the JAVA platform, the system design using object-oriented technology and object-oriented design principles. System uses the C / S structure, client and client-side and server-side client and send messages through Socket. The use of JAVA language, development tools using Eclipse. Design and Implementation of server-side process, the use of multi-threading technology, which can process in a single run at the same time a number of different threads, the implementation of different tasks. Procedures greatly enhanced the use of server resources.Chat system will allow people to complete chat to more friends,and the system can add, delete somebody,can deal with new user registration, send messages, receive messages and so on.Keywords : Multithreading ;Client/Server ;JAVA ;Socket ;Eclipse ;TCP/IP目录1 绪论 (5)1.1国内外聊天系统的研究现状 (5)1.2J AVA语言 (6)1.2.1 Java的发展历史 (6)1.2.2 Java的特点 (7)1.2.3 Java与Internet (7)1.3S OCKET编程 (8)1.3.1 关于TCP/IP协议 (8)1.3.2 服务器和客户机 (9)1.4本文内容安排 (9)2 需求分析 (10)2.1可行性研究 (10)2.1.1 可行性分析 (10)2.1.2系统功能需求 (10)2.1.3 系统性能需求 (11)2.1.4 系统运行需求 (11)2.2数据流图 (11)2.2.1 顶层数据流图 (11)2.2.2 一层数据流图 (12)2.2.3 二层数据流图 (13)3 概要设计 (14)3.1系统实现原理 (14)3.2系统实现层次图: (15)3.3各模块详细功能 (15)3.3.1服务器端结构 (15)3.3.2 客户端结构 (16)4 详细设计 (17)4.1系统流程图 (17)4.1.1 系统总体流程图 (17)4.1.2 系统客户端流程图 (18)4.2编写服务器端程序 (18)4.2.1 问题陈述 (18)4.2.2 解决方案 (19)4.3客户端程序编写 (23)4.3.1 (23)4.3.2 用户登录 (23)4.3.3 聊天室 (24)参考文献 (30)致谢 (31)1 绪论1.1国内外聊天系统的研究现状目前国内外做聊天系统的公司很多,产品也琳琅满目,国内有诸如腾讯QQ、新浪UC、网易泡泡等,国外有著名的MSN(新版改名为Live Messenger)以及跨平台Gaim等。
局域网聊天系统的设计与实现项目开发总结报告1。
1需求分析本项目的名称为“局域网聊天系统的实现与设计”,为本学期的项目实践课题。
本项目将运行在Windows XP下操作系统中,在Visual C++ 环境下,由服务器对客户端提供各种数据的记录、存储、认证等功能,并在客户端实现基本的即时聊天功能。
软件的总体要求:实现用户在局域网内可以点对点的聊天,可以群聊,发送表情图片等等功能.编写这份开发总结报告一方面可以让开发者总结开发以来的问题,另一方面可以给领导了解开发过程。
Visual C++是一个功能强大的可视化应用程序开发工具,用于Windows环境下32位的应用程序的开发,是计算机界公认的最优秀的应用开发工具之一。
在提供可视化的编程方式的同时,Visual C++也适用于编写直接对系统底层操作的程序,生成代码的质量也优于其它的开发工具。
在Visual C++环境下,利用Microsoft的基本类库MFC (Microsoft Foundation Class Library),可以使用完全的面向对象的方法来进行Windows 95/98/NT应用程序的开发,使得Windows程序员从大量的复杂劳动中解救出来,体会到真正的程序语言的强大功能和良好的灵活性。
Visual C++编程是一个面向对象的程序设计方法.同传统的结构化程序设计方法相比,它缩短软件的研制时间,提高软件的开发效率,使程序员可以更好地理解和管理庞大而复杂的程序.面向对象的程序设计吸取了结构化程序设计的精华,它利用了人们根据对事物分类和抽象的倾向,引入了类和对象的概念,具有封装性(数据抽象)、继承和多态的特点。
与结构化程序设计不同的是,面向对象程序设计是用类抽象代表现实的实体,用类之间的继承关系表示程序设计的抽象过程。
函数只是对数据的操作,没有数据的概念,而类是数据和数据操作的集合,由于面向对象的程序设计方法非常近现实,所以越来越流行.Visual C++中集成了大量的最新技术,如ActiveX、COM等技术,程序开发人员可以紧紧地把握住软件开发技术发展的方向,开发出功能强大的应用程序。
1。
2背景a。
待开发的软件系统的名称:局域网聊天系统。
b. 本项目的任务提出者、开发者:姚贺翔.c。
该软件的使用范围:公司内部的局域网之中.1。
3定义局域网聊天系统:局域网终端使用者的网络沟通服务,使用者可以通过安装了局域网聊天系统客户端的终端机进行两人或多人的聊天,内容包括文字,图片等。
SOCKET:套接字;TCP:传输控制协议;UDP:数据包协议;2。
1项目设计文档最终制成的产品,包括:a.可运行的局域网聊天系统应用程序。
b.关于局域网聊天系统方面的有关文档,例如:需求分析报告、软件设计说明书、软件使用说明书、测试分析报告等等一系列文档。
c.程序目前只有一个版本。
已经通过用户在使用过程中去发现存在的BUG。
d.建立的数据库名称为MyQQ。
mdb和Java自带的derby数据库。
e.主程序是聊天系统,其中还自带了备忘录和小游戏两个模块。
代码量大概在10000左右。
2.2主要功能和性能2。
3基本流程3编码与环境package Chat2;import java。
awt。
*;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.*;import .*;import java.text。
SimpleDateFormat;import java。
util.*;import javax.swing。
*;public class Chat extends JFrame {private static final long serialVersionUID = 1;private JScrollPane list_text_gdt = null;Toolkit kit = Toolkit。
getDefaultToolkit();Dimension screenSize = kit。
getScreenSize();private int screenWidth = screenSize。
width;// 得到当前用户屏幕的尺寸private int screenHight = screenSize。
height;Image iconImg = kit.getImage("。
/222.gif”);// 得到一个图标文件public static Calendar ocal = null;// 系统时间public static Date current_time = null;public static SimpleDateFormat sdff = new SimpleDateFormat(”yyyy—MM—dd HH:mm:ss");public Image[][] img = new Image[5][6];public static int imgnum = 0;private JFileChooser chooser;static JTextArea list_text = null;static JTextArea send_text = null;boolean flagEnter = false;private boolean Bconnect = false;public String ipAdd = null;// 读写数据DataInputStream dataReader = null;DataOutputStream dataWriter = null;Socket clientConnectServer = null;Thread redthred = new Thread(new ReadThread());JButton send_info_button = null;JButton send_close_button = null;JButton file_send_button = null;JMenuBar chatMenuBar = new JMenuBar();// 菜单条JMenu fileMenu = new JMenu("文件”);JMenuItem fileMenu_open = new JMenuItem("打开");JMenuItem fileMenu_clear = new JMenuItem(”清空”);JMenuItem fileMenu_save = new JMenuItem(”保存。
.。
”);JMenuItem fileMenu_savel = new JMenuItem(”另存为。
..”);JMenuItem fileMenu_exit = new JMenuItem(”退出”);JMenu helpMenu = new JMenu("帮助”);JMenuItem helpMenu_help = new JMenuItem("使用说明..。
");JMenuItem helpMenu_me = new JMenuItem(”关于我们..。
");// 以上为软件各个组件JTabbedPane font_face_tab = null;// 字体表情选项卡JTabbedPane send_text_tab = null;// 发送文本框选项卡JComboBox font_list = new JComboBox();JComboBox face_list = new JComboBox();public static boolean chatToServer = false;public Chat(String ipAdd) {chatToServer = true;this.ipAdd = ipAdd;jjInit(ipAdd);this.setIconImage(iconImg);this.setTitle(”chat");this。
setVisible(true);}4.测试条例容错性测试:容错性测试是检查软件在异常条件下的行为,容错性好的软件能确保系统不发生无法意料的事故。
经检查,当用户输入无效操作时,系统总是能检测到无数的操作,对用户进行相应的信息反馈,并合理的做出内部处理,当系统本身发生错误,比如网络初始化失败,绑定套接字失败,数据失败等,都会进行相对应的正确处理.例如当文件传输时,用户输入的文件不存在,而单机“开始”时,会有如图6-1所示的错误提示。
易用性测试:易用性测试没有一个量化的指标,主观性较强,一般认为,如果一个系统可以让用户不查阅手册即可正确使用起所有功能,那么这个系统就具有良好的易用性.本聊天工具使用过程中提示信息详解,界面友好,操作简单,新用户能够很快学会使用所以具有有较好的易用性.文档测试:在本系统的开发过程中,因为是笨科毕业设计,所以具有完备的开题报告,文件阐述,任务书,以及最终的论文做总结阐述,整个文档所以说文档方面也比较完整。
性能与效率测试:关于性能的问题,在语聊时,未对语音输入设备采集到的信息进行编码,缓冲数也较少,所以当用户所处环境狭小时,回音将产生啸叫。
改用麦克风和耳机之后,一定程度上隔断回音的影响,通话质量基本上能满足要求。
文件传输的时候,通过对文件长度以及已传输出信息量的相减运算,显示出当前运输状态,需要占用较多的系统计算资源和事件,而且传输速度相对IPMSG等软件,慢太多。
这个问题,我通过对文件流缓冲的字节数进行增大,设置为8KB后,计算量减少,传输速度明显加快,通过计事器计时,最后得出的传输速率与IPMSG相比,大致一样,因为对于快带相对较大,至少都是10Mbps的局域网来说,信息的发送和接受,在局域网内几乎就是瞬间响应,造成速度瓶颈的不是网络传输因素,而是频繁的对磁盘蛇盘进行读写所致,而传输过程中频繁的计算也是造成系统资源消耗过大的一个原因.通过改进算法后,文件传输效率基本上能满足用户要求。
另外,此设计中未先知传输文件的大小,经测试,5GB以上的文件也能通过文件传输模块进行传输.因此,和其他的类似软件相比较,有更大的应用范围。