仲恺农业工程
网络编程程序设计报告
网络聊天室
课程名称 网络编程
姓 名 张宝鑫
院(系) 信息科学与技术
专业班级 网络工程113班
学 号 201110224328
任课教师 蒋明亮
完成日期 2013年12月31日
目 录
1.需求分析 1
1.1本课题的来源 1
1.2可行性分析 1
1.3功能要求 1
1.4本系统涉及的知识点 2
1.5系统运行需求 2
2 程序总框图和功能模块说明 2
2.1 程序总框图 2
2.2 功能模块说明 3
2.2.1客户端结构 3
3. 系统设计 4
3.1主要类设计 4
3.2关键函数流程图 4
3.2.1系统总体流程图 4
3.2.2系统客户端流程图 5
4. 系统调试 6
4.1客户端 6
4.2服务器端 7
5.总结 7
6. 源程序清单 8
7成绩评定表 29
1.需求分析
1.1本课题的来源
随着网络普及和上网人数的大增,在国内各大门户网站都架设了大型聊天室。如:新浪聊天
室、中华网社区聊天室、搜狐等都成为网民们的热门聊天室。以新浪聊天室为例看,聊天室呈现积聚人气作用,并开设不同主题的聊天室以使网民们具有针对性的使用聊天室。
本小组计划设计一个实现基于Java语言的聊天室的Windows网络编程,启动服务器后,客户端运行,向服务器端发出请求,连接成功后,会弹出一个聊天室的界面,该界面有私聊(可加入生动的表情描述)、群聊、发送文件等功能,客户可以根据自己的需要选择不同的功能。本人在此小组中的具体任务是实现文件的接收功能,启动服务器监听后,接收客户端发来请求,安排线程接收对方发来的文件(例如文档、照片、音乐、电影等)并存入指定的文件夹中。
1.2可行性分析
经济可行性:由于本系统的主要背景是课程考核,不注重直接的经济效益和其后的发展方向,只在注重自身水平和能力的提高,对自身的经济要求也不高,只要有一台能运行Java软件的电脑便可,所以不用考虑到经济问题。
技术可行性: 本系统使用Java作为系统开发的开发环境,它提供完善的指令控制语句、类与对象的支持及丰富的数据类型,给开发高性能系统提供的保障为开发满足客户要求的系统,保证了代码的模块化要求,而代码模块化的提高,非常有利于以后对新系统的扩展与修改。
运行可行性: 本系统为一个小型的局域网聊天系统,所耗费的资源非常的小,现在一般的电脑无论是硬件还是软件都能够满足条件,因此,本系统在运行上是可行的。
综上所述,本系统的设计与开发在技术上和硬件设备上的条件都是满足的,因此,它在技术上是可行的。
1.3功能要求
(1)在服务器端和客户端分别创建一个套接字对象,通过输入输出流连接在一起。套接字调用close()方法关闭双方的套接字连接。
(2)使用多线程处理套接字连接,把服务器端或客户端读取的数据放在一个单独的线程中去进行,防止服务器端或客户端读取数据可能引起的堵塞。服务器端收到一个客户的套接字后,应该启动一个专门为该客户服务的线程。
(3)成功连接后,在图形界面中用户可以根据自己的需要进行不同的操作,如:群聊天、和某一个用户单独聊天(可加入生动的表情描述)、发送文件等。在界面中会显示用户的聊天记录。
1.4本系统涉及的知识点
* 套接字Socket的建立、连接、关闭,客户端和服务器端的输入/输出流的连接。
* Java中的多线程及线程的常用方法、Runnable接口。
* 基于SWING的图形用户界面设计:布局设计、文本组件、按钮与标签组件、列表组件等。
* InetAddress类。
* 输入/输出流:文件、文件字节流、文件字符流、缓冲流、数据流。
1.5系统运行需求
运行环境:Windows 9x、2000、xp、2003,Linux
必要环境:JDK 1.5 以上
硬件环境:CPU 400MHz以上,内存64MB以上
2 程序总框图和功能模块说明
2.1 程序总框图
2.2 功能模块说明
2.2.1客户端结构
连接验证:默认IP地址是本地IP地址,默认端口是2525
在线用户:显示在线的用户
群聊:用户可以给所有人发送信息,并能看到其他用户发送给自己或所有人的消息
断开连接:与服务器断开连接,无法发送与接收信息
2.2.2服务器