- 1、本文档共22页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
计算机网络聊天室
计算机网络课程设计报告
学生姓名
学 号
班 级 计算机0908班
指导教师
设计时间 2012.1.7~2012.1.10
目录
第一章 设计目的、任务
1.1设计目的·························3
1.2设计的任务 ·······················3
第二章 系统分析设计
2.1系统流程分析······················4
2.2系统功能需求分析···················5
2.3系统运行要求······················6
2.4系统数据要求······················6
第三章 系统实现
3.1 系统界面设计····················· 7
3.2 系统功能模块设计···················9
第四章 体会和建议
第一章 设计目的、任务
1.1设计目的
1.了解通信规范的细节及其实现。
2.通过本次网络课程设计,掌握高级编程语言中对用户界面的设计方法,以及多线程技术、基于TCP/IP的Socket通信的编程方法,同时能够把协议的设计思想应用到实际中去。
1.2设计的任务
编写一个聊天室,实现C/S模式的会话。基本要求可以完成群聊、私人聊天,实时发送和显示聊天信息,完成好友列表;进一步要求带表情,附件发送,聊天信息的加密传送,设置黑名单等。学习通信编程Socket接口编程,使用TCP或UDP接口完成信息传送,利用多线程技术实现服务器端的多个TCP连接的建立。
网络聊天是网络编程的典型应用之一,编写网络聊天软件对于学习网络编程无疑有着很大的帮助。
第二章 系统分析设计
2.1系统流程分析
该C/S模式的聊天是服务器提供服务端连接响应,因此,实现服务器端和客户端两部分程序。
对于整体系统的流程,也是分为两部分,即客户端的发起请求,服务器响应请求。首先是客户端的登陆,客户端在登陆时,必须设置所想要连接的服务器,然后客户端就会根据设置的服务器IP地址,向服务器发起建立连接请求。而服务器端是始终在监听网络状态的,主要检测到有一个连接请求,那么服务器就会给当前的发起端分配一个服务线程,用于处理它的各种请求。
对于客户端的各种请求,实际上都是通过在客户发往服务器的各种字符流区分的,具体的方法就是在消息的头部以及尾部添加特殊字符串,从而实现服务器对消息请求的识别。比如对于登陆信息,消息的头部就是“PEOPLO”,而对于私聊中的消息,头部就是“SEC”,其他的同理都添加了头部。当然,对于客户端来说,这些都是透明的,用户的操作并没有受到任何影响。在服务器端,消息被检测分析后,变回根据具体的目的进行处理,比如是私聊消息,服务器便会根据其尾部的目的信息,向目标端转发该条消息。
这里额外要说的是,该系统特别的对用户发来的消息进行了加密处理,即用户的各种具体信息,不仅能够防止向第三方的泄漏,而且即使服务器端出现异常,信息也不会泄漏。
对于私聊的方式,该系统所采用的方法类似于QQ的通信方式,由发起方主动连接,当目的方接收到连接请求后,会主动建立一个私聊窗口,从而 实现私聊。
2.2系统功能需求分析
本系统所要实现的主要功能是为用户提供一个借助网络进行人际交往的平台、开发环境
2、客户端
(1)客户端运行后的登陆界面图如下所示:
(2)客户端运行后的主界面图如下所示:
(3)客户端运行后的私聊界面图如下所示:
3.2 系统功能模块设计
1、服务器创建Serversocket,使用本地IP以及端口(port)1234建立套接字对网络进行监听,并对发来请求的客户创建连接,分配服务线程firstthread。
实现该功能的代码如下所示:
listen = new ServerSocket(PORT);//创建一个服务器,进行监听try {
while (true) // 保持监听客户端的请求
{
Socket client = listen.accept();//服务器监听
st.append(\n新客户机器的IP地址: + client.getInetAddress());
firstthread f = new firstthread(this, client); // 为每一个客户创建一个客户端线程
f.start(); // 客户端线程启动
clients.addElement(f); // 将
您可能关注的文档
- 西南政法大学本科商法学课件:保险法 培训课件.ppt
- 西安三桥华宇凤凰城项目营销战略提案62PPT.ppt
- 西安交通大学MBA市场营销PPT09.ppt
- 西安亚建高尔夫别墅整合推广策略执行提案80PPT.ppt
- 西安交通大学MBA市场营销PPT05.ppt
- 西安毅达上城房地产项目营销策划报告60PPT.ppt
- 西方情人节的来历.doc
- 西方经济学简明教程PPT 培训课件.ppt
- 西式餐饮业社会实践报告.docx
- 西气东输西气东输管道总体工艺方案设计.docx
- 2025电力市场化改革与电价体系洞察-77页.pdf
- 2024年中国水处理膜市场研究简报-中项网行业研究院-29页.pdf
- The Simpsons《辛普森一家》第三十六季第十一集完整中英文对照剧本.docx
- Andor《安多(2022)》第二季第十二集完整中英文对照剧本.docx
- The Studio《片厂风云(2025)》第一季第七集完整中英文对照剧本.docx
- The Simpsons《辛普森一家》第三十六季第十集完整中英文对照剧本.docx
- The Passage《雪岭大偷渡(1979)》完整中英文对照剧本.docx
- The Simpsons《辛普森一家》第三十六季第九集完整中英文对照剧本.docx
- Andor《安多(2022)》第二季第十一集完整中英文对照剧本.docx
- Andor《安多(2022)》第二季第九集完整中英文对照剧本.docx
文档评论(0)