计算机网络课程设计报告.doc_第1页
计算机网络课程设计报告.doc_第2页
计算机网络课程设计报告.doc_第3页
计算机网络课程设计报告.doc_第4页
计算机网络课程设计报告.doc_第5页
免费预览已结束,剩余21页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

计算机网络课程设计专业班级:信息安全09级1班小组成员:xxx xxx 课程设计指导教师评定成绩表(学生1姓名: 学号:)项目分值优秀(100x90)良好(90x80)中等(80x70)及格(70x60)不及格(xx90)良好(90x80)中等(80x70)及格(70x60)不及格(x60)评分参考标准参考标准参考标准参考标准参考标准学习态度15学习态度认真,科学作风严谨,严格保证设计时间并按任务书中规定的进度开展各项工作学习态度比较认真,科学作风良好,能按期圆满完成任务书规定的任务学习态度尚好,遵守组织纪律,基本保证设计时间,按期完成各项工作学习态度尚可,能遵守组织纪律,能按期完成任务学习马虎,纪律涣散,工作作风不严谨,不能保证设计时间和进度技术水平与实际能力25设计合理、理论分析与计算正确,实验数据准确,有很强的实际动手能力、经济分析能力和计算机应用能力,文献查阅能力强、引用合理、调查调研非常合理、可信设计合理、理论分析与计算正确,实验数据比较准确,有较强的实际动手能力、经济分析能力和计算机应用能力,文献引用、调查调研比较合理、可信设计合理,理论分析与计算基本正确,实验数据比较准确,有一定的实际动手能力,主要文献引用、调查调研比较可信设计基本合理,理论分析与计算无大错,实验数据无大错设计不合理,理论分析与计算有原则错误,实验数据不可靠,实际动手能力差,文献引用、调查调研有较大的问题创新10有重大改进或独特见解,有一定实用价值有较大改进或新颖的见解,实用性尚可有一定改进或新的见解有一定见解观念陈旧论文(计算书、图纸)撰写质量50结构严谨,逻辑性强,层次清晰,语言准确,文字流畅,完全符合规范化要求,书写工整或用计算机打印成文;图纸非常工整、清晰结构合理,符合逻辑,文章层次分明,语言准确,文字流畅,符合规范化要求,书写工整或用计算机打印成文;图纸工整、清晰结构合理,层次较为分明,文理通顺,基本达到规范化要求,书写比较工整;图纸比较工整、清晰结构基本合理,逻辑基本清楚,文字尚通顺,勉强达到规范化要求;图纸比较工整内容空泛,结构混乱,文字表达不清,错别字较多,达不到规范化要求;图纸不工整或不清晰指导教师评定成绩:指导教师签名: 年 月 日重庆大学本科学生课程设计任务书课程设计题目计算机网络课程设计学院计算机学院专业信息安全年级2009已知参数和设计要求:通过计算机网络的课程设计,使学生了解、掌握tcp、udp协议的原理;了解、掌握利用winsock api编程的方法;了解、掌握应用协议设计的思想;利用winsock api编制一个能部署在internet上的点对点数据交换(p2p)、http/ftp服务器系统、共享白板。要求每组学生(23人/组)从上述3个系统中任选一个,独立完成系统的功能设计和实现,使所实现的系统可以能够包含主要的内容要求,并要求学生必须在报告中明确具体分工情况。学生应完成的工作:分组 23人/组。 内容:协议编程。语言:java或c+。3个题目任意两个一组供一个班级选择。1) 点对点数据交换(p2p):实现基于服务器转发的任意多点间的数据共享与交换。2) http/ftp服务器系统:http/ftp客户端系统和http/ftp服务端系统。3) 共享白板:实现基于服务器转发的多点间的文字,简单图案等信息的远程实时共享。目前资料收集情况(含指定参考资料):1) 计算机网络第4版 谢希仁 电子工业出版社 2003年.6月2) 用tcp/ip进行网络互联(第一卷)d.e.comer 电子工业出版社2004年.11月第四版3) tcp/ip网络原理与技术 周明天、汪文勇:清华大学出版社:19934) visual c+网络高级编程,陈坚,人民邮电出版社,2001年08月课程设计的工作计划:1需求分析(说明系统目的,要求,操作流程,开发工具与开发平台)2总体设计(描述系统功能,系统架构,模块化分)3详细设计(建立系统的数据结构,协议结构,数据流程图)4系统实现编码(用所选开发工具完成应用系统)任务下达日期 2012年 1 月 9日完成日期 2012 年 1 月 12 日指导教师 (签名)学 生 (签名)说明:1、学院、专业、年级均填全称,如:光电工程学院、测控技术、2003。2、本表除签名外均可采用计算机打印。本表不够,可另附页,但应在页脚添加页码。目录1、 设计方案 二、程序流程框图 三、程序源代码四、程序测试及结果五、参考文献六、成员分工七、小组总结1、 系统设计方案 该系统是针对点对点数据交换(p2p)进行设计的,它的目的是在建立后台server的前提下,实现后台server与客户端client的数据传输及客户端client与客户端client之间的数据共享与交换。 系统总体的要求是:点对点数据交换(p2p)实现基于服务器转发的任意多点间的数据共享与交换。 系统的操作流程如下: 首先打开服务器server,服务器server打开后我们建立了专门的线程 thread thread = new thread(new threadstart(runserver);进行监听,用户在登陆界面输入用户名和密码进行登陆,这个过程客户获取了主机的ip并和服务器建立了联系。当用户和服务器建立联系后通过reader函数和writer函数便可以实现服务器server与客户端client、客户端client与客户端client之间的数据共享与交换。2、 程序流程框图 图1. 服务器流程框图 图2.客户端流程框图 三、程序源代码using system.linq;using system.text;using system.windows.forms;namespace server_form_net public partial class server : form private dealserver dealserver;/后台处理服务器程序; public server() initializecomponent(); / checkforillegalcrossthreadcalls = false;/ 很危险,不安全; private void startbutton_click(object sender, eventargs e) dealserver = new dealserver(serverlistbox); dealserver.startserver(); /开始监听; startbutton.enabled = false; /启动按钮失效; endbutton.enabled = true; /终止按钮可用; private void endbutton_click(object sender, eventargs e) try dealserver.endserver(); /终止服务器; catch /*什么也不做,只是接受异常*/ startbutton.enabled = true; /启动按钮可用; endbutton.enabled = false; /终止按钮失效; protected override void onclosing(canceleventargs e) try dealserver.endserver(); catch /*不处理异常*/ application.exit();/聊天窗口因为是副窗口,当关闭时使整个程序结束; using system;using system.collections.generic;using system.linq;using system.text;using system.windows.forms;using system.net;using system.net.sockets;using system.threading;using system.collections;using system.io;namespace server_form_net class dealserver private listbox listbox; private ipaddress ipaddress = dns.gethostaddresses(dns.gethostname()0;/主机地址; private int port = 5000;/监听端口; private tcplistener listener; /服务器监听; private list userlist=new list(); /所有用户列表; public dealserver(listbox box) listbox = box; public void startserver() setlistbox(服务器开始监听.); listener = new tcplistener(ipaddress, port); listener.start(); thread thread = new thread(new threadstart(runserver); thread.start(); public void endserver() setlistbox( ); setlistbox( 服务器终止,客户依次退出.); for (int i = 0; i 9) | (num 0) continue;/只是为了测试用; else /4-我的名字-6-对象名-信息; string splitstring = readstream.split(-); /取发送者名字; int mynum = int.parse(splitstring0); string myname = splitstring1; /取聊天对象名字; int tonum = int.parse(splitstring2); string toname = splitstring3; /取信息; string tostr = splitstring4; tostr = myname + : + tostr; chattosingle(toname, tostr); /向自己发送; chattosingle(myname, tostr); continue; private string friendlist(string name,int n) /当用户第一次登录时,当有新用户登录时,群发好友列表;/当用户离线时,也群发信息;/*发送好友列表格式/自己名字群体聊天好友好友好友好友; string allname; if (n = 0)/离线; allname = + name + 离开房间了; else/上线; allname = + name + 群体聊天; for (int i = 0; i userlist.count; i+)/将所用用户列表返回到客户端好友列表; user users = userlisti; allname += + users.username; /* return allname; /* /单独聊天; private void chattosingle(string name,string str) binarywriter writer; for (int i = 0; i userlist.count; i+) user user = userlisti; if (user.username = name) networkstream netstream = user.client.getstream(); writer = new binarywriter(netstream); writer.write(str); break; /* /群发; private void chattoall(string name,string str) binarywriter writer; for (int i = 0; i userlist.count; i+) user user = userlisti; networkstream netstream = user.client.getstream(); writer = new binarywriter(netstream); writer.write(name+ (群发):+str); /群发重载,添加好友列表,删除离线好友; private void chattoall(string str) binarywriter writer; for (int i = 0; i 23) listbox.selectedindex = listbox.items.count - 1;/锁定最后一行; catch /*什么也不做,只是接受异常*/ using system;using system.collections.generic;using system.linq;using system.text;using system.windows.forms;using system.net.sockets;using system.io;using system.threading;namespace client_form_net class dealclient private string username;/用户名; private string password;/密码; private tcpclient client;/客户端; private listbox chatroomlistbox;/聊天窗口; private listbox friendlistbox; /好友列表; private textbox sendtextbox; /发送窗口; private label headlabel; private form loginform;/登录窗口; private streamwriter sw; private streamreader sr; private binaryreader reader;/读取流; private binarywriter writer;/写入流; string friend; public dealclient(form loginform) loginform = loginform; public dealclient(tcpclient client,string username,string password,listbox crlb, listbox flb, textbox ctb,label hl) /初始化参数; client = client; username = username; password = password; chatroomlistbox = crlb; friendlistbox = flb; sendtextbox = ctb; headlabel = hl; connectserver(); /* /连接服务器; private void connectserver() /由于已经与服务器连接上,不允许再与服务器建立连接; / enableconnecttoserveragain(false); /获取网络流; networkstream netstream = client.getstream(); /用与接受信息; /sr = new streamreader(netstream, system.text.encoding.default); reader = new binaryreader(netstream); /用于发送信息; /sw = new streamwriter(netstream, system.text.encoding.default); writer = new binarywriter(netstream); /登录服务器; thread threadreceive = new thread(new threadstart(receivedata); threadreceive.start(); /第一次登录发送个个人信息;格式:-6-用户名-5-密码 sendtoserver(-+username.length.tostring()+-+username+-+password.length.tostring()+-+password); /* /发送到服务器; private void sendtoserver(string str) /sw.write(str); writer.write(str); /* /从服务器接受信息; private void receivedata() bool running=true; string read; while (running) /read=sr.readline(); try read = reader.readstring(); if (read0 = )/将所有用户写如好友列表; read = read.substring(1, read.length - 1); string splitstring = read.split(); if (splitstring1 = 离开房间了) setlistbox(splitstring0 + 离开房间了); else setlistbox(splitstring0 + 新加入聊天室); /新加入用户名群体聊天好友好友; /当新用户加入聊天时,先删除所有用户,达到更新目的; clearfriendbox(); for (int i = 1; i splitstring.length; i+) if (i = 1) setfriendbox(群体聊天);/第一个始终是群体聊天; else setfriendbox(splitstringi); else setlistbox(read); catch /当服务器关闭了; setlistbox( ); setlist

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论