文档介绍:网络软件开发
综合课程设计报告
专业计算机科学与技术
班级
学生
指导教师
2013 年秋季学期
报告提纲
设计题目(或目的)
设计题目:网络聊天软件设计与实现
设计目的:
网络越来越发达的今天,人们对网络的依赖越来越多,越来越离不开网络,由此而产生的聊天工具越来越多,网络聊天时一类的聊天系统的发展日新月异,因此产生了制作一个局域网的网络聊天工具的;而且通过制作该程序还能更好的学习网络软件编程知识,为此,我们可以做到:
1. 学会Java程序开发的环境搭建与配置,并在实际运用中学习和掌握Java程序开发的全过程。
2. 进一步熟悉掌握Java程序设计语言的基础内容,如用户图形界面设计、Java多线程编程、Applet程序的设计、文件和网络输入输出流编程、Java数据库编程等。
3. 通过亲自动手写程序,一方面拓展知识面,一方面锻炼调试能力。
二设计开发环境
(1)使用eclipse平台实现改程序的编写。
(2)要求用户操作时,要给出清晰,明确的提示信息。
(3)所有文件、函数、变量的名称尽量做到见其名知其意的特点
三设计原理
1、实现思想
上的聊天程序一般都是以服务器提供服务端连接响应,使用者通过客户端程序登录到服务器,就可以与登录在同一服务器上的用户交谈,这是一个面向连接的通信过程。因此,程序要在TCP/IP环境下,实现服务器端和客户端两部分程序。
2、服务器端工作流程
服务器端通过socket()系统调用创建一个Socket数组后(即设定了接受连接客户的最大数目),与指定的本地端口绑定bind(),就可以在端口进行侦听listen()。如果有客户端连接请求,则在数组中选择一个空Socket,将客户端地址赋给这个Socket。然后登录成功的客户就可以在服务器上聊天了。
3、客户端工作流程
客户端程序相对简单,只需要建立一个Socket与服务器端连接,成功后通过这个Socket来发送和接收数据就可以了。
(如有图需要有题目及编号)
四系统设计
设计思想:
整个系统分为服务器和客户端,服务器端维护各个客户端的信息。客户端的所有信息发往服务器端,再由服务器进行消息的分析处理并做出相应的控制,服务器端是所有信息的中心。
服务器端可以查看所有用户的聊天记录,监控所有用户的状态,发出用户上线、离线提示等公告,客户端则提供接收公告的功能。
本课程设计按照系统的具体功能要求,首先应用Socket编程创建客户端和服务器端,每多个客户端服务器端就会相因的创建一个线程,它们之间通过这个连接来实现数据通信;然后在客户端设置一个监听器,用于监听服务器发来的消息。并根据消息做出不同的动作。
局域网聊天系统
系统功能
该系统实现了用户之间的点对点单人聊天,在线用户之间的群聊。为了加强之间的信息交流,还实现了用户之间文件传输、语音聊天。在客户端和服务器端都可以查看历史消息、保存消息、清空消息。为了监控用户之间的状态,服务器还可以实现踢掉用户的功能,同时用户时间文件传输的信息都会在服务器上显示。
系统架构
1)选择传输控制协议TCP,使用Java的Socket编程机制,分别建立客户端与服务器端、语音传输使用的是UDP控制协议;
2)分别设计客户端与服务器端的界面,并使用Java应用程序用户界面的开发工具包Swing进行窗体界面的布局,以及实现部分窗口事件的相应。
模块设计
服务器端:
主要实现向各个客户端发布系统消息,接受来自客户端的各种信息并分别处理。具体功
①连接控制: 包括启动服务器、断开服务器以及断开某个客户端的连接;
②管理作用: 包括对参与聊天者的昵称进行修改以及向所有或某个客户端发送消息,
维护一个IP地址和昵称所对应的哈希表,以便定位到正确的客户端,且
有权强制修改用户昵称;
③刷新列表: 在有用户登陆或离开的时候实时更新列表,并将信息反馈到各个客户端; ④登陆信息: 检查用户是否已登陆,如登录,发消息通知所有用户。同时刷新在线用
户列表;
⑤聊天记录: 能保存聊天记录,实现消息的保存、清空以及查看等功能;
⑥消息处理: 解析客户端与服务器端的消息交互类型,并做出相应处理,能够找到消
息所对应的接收端。
客户端:
主要实现向服务器端发布消息,并且对来自服务器的消息做出相应的响应。具体功能如
①连接功能: 输入服务器地址,实现登录及断开功能
②登录设置: 登录时,发送消息使服务器端获得相关登录信息,昵称及IP地址记录到
服务器端维持的哈希表,断开后发送消息使IP地址及昵称从哈希表中删
除;
③监听作用: 实现对服务器发送过来的消息进行监听的功能;
④消息处理: 接收由服务器端发送来的信息,并做出相应的响应;
⑤聊天记