




已阅读5页,还剩10页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于C/S程序设计 课程设计(论文)程序设计(报告)题目Telnet客户端实现程序设计(报告)任务程序设计的任务与要求:(1)掌握C#语言编程的基础知识。(2)较熟练地编写C#语言应用程序。(3)了解C#语言的常用类、网络编程技巧、异常处理。(5)联系已学过的内容,巩固所学的理论,增强独立工作能力。(6)通过设计主要使学生有一个独立编写程序的过程,对理论学习及动手能力都有一个很大的提高。(7)通过本次设计,进一步培养学生热爱专业的思想,同时对本专业综合素质的提高起一个积极的推动作用。课程设计过程中,要严格遵守实践环节的时间安排,听从指导教师的指导。正确地完成上述内容,记录实习日记,规范完整地撰写出课程设计报告。指导教师评语及成绩成绩: 指导教师签字: 2010 年 7月 6 日目 录第1章 课程设计的目的与要求11.1 课程设计目的11.2 课程设计的实验环境11.3 课程设计的预备知识11.4 课程设计要求1第2章 课程设计内容22.1系统功能22.2系统设计22.3 系统实现42.4程序的运行和测试9第3章 课程设计总结12参考资料 13第1章 课程设计的目的与要求1.1 课程设计目的本课程设计是计算机科学与技术专业重要的实践性环节之一,是在学生学习完C#网络程序开发案例课程后进行的一次全面的综合练习。本课程设计的目的和任务: 1. 巩固和加深学生对C#语言课程的基本知识的理解和掌握 2. 掌握C#语言编程和程序调试的基本技能 3. 利用C#语言进行基本的网络软件设计4. 掌握书写程序设计说明文档的能力5. 提高运用C#语言解决实际问题的能力1.2 课程设计的实验环境硬件要求能运行Windows 2000/XP操作系统的微机系统。C#语言程序设计及相应的开发环境。1.3 课程设计的预备知识熟悉C#语言及.NET开发工具。1.4 课程设计要求1. 分析课程设计题目的要求2. 写出详细设计说明3. 编写程序代码,调试程序使其能正确运行4. 设计完成的软件要便于操作和使用5. 设计完成后提交课程设计报告第2章 课程设计内容2.1系统功能Telnet协议是TCP/IP协议族中的一员,是Internet远程登陆服务的标准协议和主要方式。它为用户提供了在本地计算机上完成远程主机工作的能力。在终端使用者的电脑上使用telnet程序,用它连接到服务器。终端使用者可以在telnet程序中输入命令,这些命令会在服务器上运行,就像直接在服务器的控制台上输入一样。可以在本地就能控制服务器。要开始一个telnet会话,必须输入用户名和密码来登录服务器。Telnet是常用的远程控制Web服务器的方法。它最初是由ARPANET开发的,但是现在它主要用于Internet会话。它的基本功能是,允许用户登录进入远程主机系统。起初,它只是让用户的本地计算机与远程计算机连接,从而成为远程主机的一个终端。它的一些较新的版本在本地执行更多的处理,于是可以提供更好的响应,并且减少了通过链路发送到远程主机的信息数量。主窗体MAINFORM其中封装了TELNET客户端主界面和处理TELNET协议的主要方法。包含了主菜单,用于执行具体的命令;中间黑色的区域是输入命令和显示命令执行情况的区域;最下面是显示运行状态的状态栏。状态栏由四个部分组成从左到右依次为连接状态,本地地址,连接的服务器地址和服务器状态。2.2系统设计Telnet远程登录服务分为以下4个过程:1)本地与远程主机建立连接。该过程实际上是建立一个TCP连接,用户必须知道远程主机的Ip地址或域名; 2)将本地终端上输入的用户名和口令及以后输入的任何命令或字符以NVT(Net Virtual Terminal)格式传送到远程主机。该过程实际上是从本地主机向远程主机发送一个IP数据报; 3)将远程主机输出的NVT格式的数据转化为本地所接受的格式送回本地终端,包括输入命令回显和命令执行结果; 4)最后,本地终端对远程主机进行撤消连接。该过程是撤销一个TCP连接。Telnet协议必须使用外带信令以便强制服务器读取一个控制命令。我们知道TCP用紧急数据机制实现外带数据信令,那么Telnet只要再附加一个被称为数据标记(date mark)的保留八位组,并通过让TCP发送已设置紧急数据比特的报文段通知服务器便可以了,携带紧急数据的报文段将绕过流量控制直接到达服务器。作为对紧急信令的相应,服务器将读取并抛弃所有数据,直到找到了一个数据标记。服务器在遇到了数据标记后将返回正常的处理过程。Talnet客户端的实现这个系统的功能分为一个主窗体和二个副窗体。主窗体MAINFORM其中封装了TELNET客户端主界面和处理TELNET协议的主要方法。包含了主菜单,用于执行具体的命令;中间黑色的区域是输入命令和显示命令执行情况的区域;最下面是显示运行状态的状态栏。状态栏由四个部分组成从左到右依次为连接状态,本地地址,连接的服务器地址和服务器状态。下图为Talnet客户端的流程图:NO显示欢迎信息返回输入用户名和密码输入正确吗?显示服务器消息继续吗?NOYESYES输入超过3次YESNO图2.1 Telnet客户端流程图2.3 系统实现private void ProcessDo(short ch)/处理DO,以WILL或者WONT响应switch(char)ch) case BINARY: Console.WriteLine(BINARY); Send(new char IAC, WONT, BINARY); Console.WriteLine(发送: WONT BINARY); break; case ECHO: Console.WriteLine(ECHO); Send(new char IAC, WONT, ECHO); Console.WriteLine(发送: WONT ECHO); break; case SGA: Console.WriteLine(SGA); if (!sw_igoahead) Send(new char IAC, WILL, SGA); Console.WriteLine(发送: WILL SGA); sw_igoahead = true; Else Console.WriteLine(不发送响应); break; case TERMSPEED: Console.WriteLine(TERMSPEED); Send(new char IAC, WILL, TERMSPEED);Console.WriteLine(发送: WILL TERMSPEED);Send(IAC + SB + TERMSPEED + (char)0 + 57600,57600 +IAC + SE);Console.WriteLine(发送:SB TERMSPEED 57600);break;case TFLOWCNTRL:Console.WriteLine(TFLOWCNTRL);Send(new char IAC, WONT, TFLOWCNTRL);Console.WriteLine(发送: WONT TFLOWCNTRL);break;case LINEMODE:Console.WriteLine(LINEMODE);Send(new char IAC, WONT, LINEMODE);Console.WriteLine(发送: WONT LINEMODE);break;case STATUS:Console.WriteLine(STATUS);Send(new char IAC, WONT, STATUS);Console.WriteLine(发送: WONT STATUS);break;case TIMING:Console.WriteLine(TIMING);Send(new char IAC, WONT, TIMING);Console.WriteLine(发送: WONT TIMING);break;case DISPLOC:Console.WriteLine(DISPLOC);Send(new char IAC, WONT, DISPLOC);Console.WriteLine(发送: WONT DISPLOC);break;case ENVIRON:Console.WriteLine(ENVIRON);Send(new char IAC, WONT, ENVIRON);Console.WriteLine(发送: WONT ENVIRON);break;case UNKNOWN39:Console.WriteLine(UNKNOWN39);Send(new char IAC, WILL, UNKNOWN39);Console.WriteLine(发送: WILL UNKNOWN39);break;case AUTHENTICATION:Console.WriteLine(AUTHENTICATION);Send(new char IAC, WONT, AUTHENTICATION);Console.WriteLine(发送: WONT AUTHENTICATION);Console.WriteLine(发送: SB AUTHENTICATION);Send(IAC + SB + AUTHENTICATION + (char)0 + (char)0 +(char)0 + (char)0 + + IAC + SE);break;Console.WriteLine(未知的选项);break;/处理DONTprivate void ProcessDont(short ch)switch(char)ch)case SE:Console.WriteLine(SE);Console.WriteLine(接收到: RECEIVED SE);break;case ECHO:Console.WriteLine(ECHO);if (!sw_echo)sw_echo = true;Send(new char IAC, WONT, ECHO);Console.WriteLine(发送: WONT ECHO);break;case SGA:Console.WriteLine(SGA);if (!sw_ugoahead)Send(new char IAC, WONT, SGA);sw_ugoahead = true;break;case TERMSPEED:Console.WriteLine(TERMSPEED);Send(new char IAC, WONT, TERMSPEED);Console.WriteLine(发送: WONT TERMSPEED);break;case TFLOWCNTRL:Console.WriteLine(TFLOWCNTRL);Send(new char IAC, WONT, TFLOWCNTRL);Console.WriteLine(发送: WONT TFLOWCNTRL);break;case STATUS:Console.WriteLine(STATUS);Send(new char IAC, WONT, STATUS);Console.WriteLine(发送: WONT STATUS);break;case TIMING:Console.WriteLine(TIMING);Send(new char IAC, WONT, TIMING);Console.WriteLine(发送: WONT TIMING);break;case DISPLOC:Console.WriteLine(DISPLOC);Send(new char IAC, WONT, DISPLOC);Console.WriteLine(发送: WONT DISPLOC);break;case ENVIRON:Console.WriteLine(ENVIRON);Send(new char IAC, WONT, ENVIRON);Console.WriteLine(发送: WONT ENVIRON);break;case UNKNOWN39:Console.WriteLine(UNKNOWN39);Send(new char IAC, WILL, UNKNOWN39);Console.WriteLine(发送: WILL UNKNOWN39);break;default:break;2.4程序的运行和测试由于Telnet服务器对NTLM的使用有3个选项,所以当你Telnet远地机器时,会显示下面情况中的一种: 1)身份验证选项=0时Microsoft (R) Windows (TM) Version 5.00 (Build 2195)Welcome to Microsoft Telnet ServiceTelnet Server Build 5.00.99201.1login:password:为0时不使用NTML身份验证,直接输入用户名和密码,比如你可以输入扫到的Administrator和56782)身份验证选项=1时NTLM Authentication failed due to insufficient credentials. Please login withclear text username and password Microsoft (R) Windows (TM) Version 5.00 (Build 2195)Welcome to Microsoft Telnet ServiceTelnet Server Build 5.00.99201.1login: password: 先尝试 NTLM 身份验证,如果失败,再使用用户名和密码,其实这种方式对于我们来说,与上一种方式没什么区别3)身份验证选项=2时 NTLM Authentication failed due to insufficient credentials. Please login withclear text username and password Server allows NTLM authentication only Server has closed connection 遗失对主机的连接。所以对于入侵者来说,NTLM是横在我们面前的一座大山,必须要除掉它,一般我们有如下几种方法:1通过修改远程注册表更改telnet服务器配置,将验证方式从2改为1或0;2使用NTLM.exe,上传后直接运行,可将telnet服务器验证方式从2改为1;3在本地建立扫描到的用户,以此用户身份开启telnet客户机并进行远程登录;4使用软件,比如opentelnet.exe(需要管理员权限且开启IPC管道)5使用脚本,如RTCS,(需要管理员权限但不依赖IPC管道)基本上是以上的5种,其中后两种是我们比较常用的开telnet的手法,而且使用方法十分简单,命令如下:OpenTelnet.exe server username password NTLMAuthor telnetportOpenTelnet.exe 服务器地址 管理员用户名 密码 验证方式(填0或1) telnet端口cscript RTCS.vbe targetIP username password NTLMAuthor telnetportcscript RTCS.vbe .根据以上信息和代码经过运行和测试得到了主界面和2个分界面,主窗体是用来与用户交互用的,所以加载时间不能太长,响应速度应足够快,操作简单,设计人性化。所以,设计的时候,采用了一些通俗易懂的图片和按钮。文本输入框设计了Alt+S和Ctrl+Enter热键功能,方便用户快速的发送消息。当用户未输入文字而尝试发送时,弹出消息提示框,提示不能发送空信息,节省系统和网络资源。主窗体界面运行如图2.2所示:图2.2 主界面窗体设置TELNET客户端步骤窗体如图2.3所示:图2.3 设置TELNET客户端步骤窗体运行结果窗体如图2.4所示:图2.4 运行结果窗体第3章 课程设计总结通过一学期的学习,我基本掌握了C语言的功能及应用。在期末老师为我们布置了一个课程设计,内容为利用自己所学的知识,用C语言来实现系统运行。我们小组的题目是Telnet客户端实现。在课程设计的过程中,我了解并发现了很多调试程序的方法,而且懂得了如何处理错误的方法。对C语言的使用得到了进一步的提高。对程序的深层理解,清楚程序中每一步的功能,在程序的运行中是十分重要的,一个好的结构在运行中能够充分的发挥程序的功能。结构设计的合理性决定了这个程序的价值。 在这几天的课程设计过程中,我体会到老师对我们实训的目的,以及实训对每个人综合能力的检验。我真对自己平时积攒下来的知识那么少而感到羞愧。通过实训我能充分的学习到一些平时书本上学不到的知识、与自己动手操作的能力,并且结合此次实训,我能够通过上网或者是在图书馆查询一些相关的资料。通过这一过程,使我学会了很多,此次实习,我深深体会到了积累知识的重要性。通过这段时间的课程设计,我完成了C语言课程设计的内容。中间也遇到了一些困难。比如,刚接到课题时不知如何下手,通过老师的细心讲解以及在网上和图书馆查看了很多资料后,才开始动手设计。但在调试时还是有些问题不明白,对此我又去图书馆查阅了一下有关资料,对程序进行尝试性调试,再逐步进行修改,终于运行成功。对于在不断的运行调试后,最终实现了该系统的运行。还有就是由于所学知
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025版事业单位合同解除与赔偿协议范本
- 2025年度高端装备制造项目委托合同范本
- 2025年度托盘租赁与物流配送一体化服务合同
- 2025年度特色餐厅特色食材供应合同
- 2025年度餐饮店员工股权激励与绑定合同
- 2025年商铺转手及经营权转让合同范本
- 2025版商品混凝土绿色生产技术与设备采购合同
- 2025版旅游度假村租赁推广使用合同示范文本
- 2025年度石材行业石料运输节能减排合同
- 2025年度智慧实验室装修工程合同样本
- 京东集团员工手册-京东
- 成人癌性疼痛护理-中华护理学会团体标准2019
- 初中语文学习方法指导
- 2023年苏州市星海实验中学小升初分班考试数学模拟试卷及答案解析
- GB/T 23483-2009建筑物围护结构传热系数及采暖供热量检测方法
- GB/T 22237-2008表面活性剂表面张力的测定
- 股指期权风险管理
- 《电业安全工作规程》
- 发证机关所在地区代码表
- 过去分词公开课--完整版PPT课件
- 书法的章法布局(完整版)
评论
0/150
提交评论