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