计算机网络课程设计报告
实验题目: 班级: 学号: 姓名: 指导老师: 完成时间:
目录
摘要
一:设计内容……………………………………………………………………………..
1.设计目的 2.设计要求
二:设计原理…………………………………………………………………………….. 三:设计过程……………………………………………………………………………..
1.服务端框图 2.客户端框图 3.总流程图
四:运行界面展示…………………………………………………………………….. 五:设计总结……………………………………………………………………………. 六:参考书目…………………………………………………………………………….
附录:部分源代码
摘要:
当今世界正处于信息时代,计算机和通信网络是这一时代所谓\信息基础 设施\在互联网相当普及的今天,在互联网上聊天对很多\网虫\来说已经是 家常便饭了.聊天室程序可以说是网上最简单的多点通信程序.一个简单的聊天室, 从程序员的观点来看就是在多个 I/O 端点之间实现多对多的通信.基于 SOCKET 的局域网通信是一种灵活的,易于实现的,低成本的方法.它可以运行 在各种使用 TCP/IP 协议作为通讯协议的网络上.而在 SOCKET API 的帮助下,开 发基于 SOCKET 的局域网通信软件也是易于实现的.
一:设计内容 1.设计目的:
1.加深对TCP/IP协议的理解;
2.掌握用Socket编程实现聊天工具。
3. visual studio2005提供了支持网络环境的类库system.net,可适应多种网络协议,包括TCP/IP、UDP等。使用system.net类库,可快速地开发各种网络应用程序,而Socket通信是基于TCP/IP协议。
2.设计要求:
1.需求分析
在网络越来越发达的今天,人们对网络的依赖越来越多,越来越离不开网络,由此而产生的聊天工具越来越多,网络聊天时一类的聊天系统的发展日新月异,因此产生了制作一个局域网的网络聊天工具的;而且通过制作该程序还能更好的学习网络软件编程知识.
2.功能要求: a.登录功能。
b.客户可以通过服务器转发,实现一对一和多对多聊天。 c.实现呼叫功能。
d.客户端程序应该可以实时显示目前其它用户的状态。 e.应该具有易用、美观的图形界面。 3.客户端功能划分:
a.登陆功能:建立与服务器的连接并登陆,能显示登陆错误信息。
b.界面显示:将在线好友显示在好友列表中,并实现系统托盘,加入工具栏便于操作。
c.聊天功能:与好友聊天。
d.聊天纪录:能保存聊天纪录,并能察看聊天纪录。
e.信息提示:闪动托盘图标提示到来信息,并播放不同音乐来提示。
f.其他:用户登陆成功,将保存其号码,以便下次登陆时,不必再输入而可以直接选择,显示登陆时间。
二:设计原理:
服务器端通过 socket()系统调用创建一个 Socket 数组后(即设定了接受连接 客户的最大数目),与指定的本地端口绑定 bind(),就可以在端口进行侦听 listen().如果有客户端连接请求,则在数组中选择一个空 Socket,将客户端地 址赋给这个 Socket.然后登录成功的客户就可以在服务器上聊天了.客户端程 序相对简单,只需要建立一个 Socket 与服务器端连接,成功后通过这个 Socket 3 来发送和接收数据就可以了.socket 聊天室基本原理是,抛开 CGI(公共网关 接口)和 www 服务器,根据 html 规范,接收到浏览器的请求以后,模仿 www 服务器的响应,将聊天内容发回浏览器.在浏览器看来就像浏览一个巨大的页面 一样始终处于页面联接状态, 这就是一个专门的聊天服务器,一个简化了的 www 服务器.
三:设计过程:
1.聊天室服务器端设计: JFrame ActionListener ChatServer -port:public static in -serverSocket:ServerSocket -messageShow:JTextArea -userLinkList:UserLinkList -showStatus:JTextField + ChatServer():public +init():public void +startService():public void +stopService():public void +sendStopToAll():public void +sendMsgToAll(String):public void + sendSystemMessage():public void
Thread ServerListen - server: ServerSocket - userLinkList :UserLinkList - isStop: public Boolean +ServerListen(ServerSocket,JComboBox,JTextArea,JTextField,UserLinkList) ServerReceive -textarea:JTextArea - userLinkList :UserLinkList - isStop: public Boolean +ServerListen(ServerSocket,JComboBox,JTextArea,JTextField,UserLinkList)
2.客户端框架设计 JFrame ActionListener ChatClient -port:public static in -serverSocket:ServerSocket -messageShow:JTextArea -userLinkList:UserLinkList -showStatus:JTextField + ChatClient():public +init():public void +Connect():public void +DisConnect():public void +SendMessage():public void Thread ClientReceive - socket: Socket -output:ObjectOutputStream -input:ObjectInputStream +ClientReceive(Socket,ObjectOutputStream,ObjectInputStream,JComboBox,JTextArea,JTextField ) 3.流程图: