版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
PAGEIII软件开发设计文档
文档管理信息表主题web服务器版本1.0内容可响应客户端发送文件请求的web服务器关键字套接字,请求报文,响应报文,tcp编程参考文档无创建时间2016/4/2创建人吴鑫最新发布日期2016/4/2文档变更纪录更改人日期更改内容何鑫2016/4/4创建文件
目录TOC\o"1-3"1 开发规划 11.1 开发人员 11.2 开发计划 21.3 开发环境和工具 31.4 开发规范 32 总体设计 42.1 概念术语描述 42.1.1 术语1 42.1.2 术语2 42.3 主要界面流程描述 72.3.1 功能1界面流程 72.3.2 功能2界面流程 72.4 模块列表 83 数据结构 94 接口规范 104.1 <模块1API> 104.1.1 Interface1 104.1.2 Interface2 104.2 <模块2API> 114.3 <模块3API> 114.4 <数据库API> 115 模块设计 125.1 Module1设计 125.1.1 模块设计描述 125.1.2 模块界面描述 125.2 Module2设计 136 附录 146.1 第三方组件 146.2 参考资料 156.3 附加文档 15xx项目.项目目标PAGE13开发规划开发人员角色主要职责负责模块人员备注何鑫负责编写窗口界面创建通信套接字建立连接获取http请求,解析请求报文封装文件到http响应报文中,并发送该响应报文软件的测试与优化xxx模块xxx
开发环境和工具开发工具工具作用Microsoftvisualstudio2010web服务器,窗口界面
总体设计概念术语描述术语1静态文本框术语2请求报文响应报文
基本设计描述1.传入一个与某个浏览器通信的套接字2.启动一个线程来监听浏览器接收到的数据recive3.如果监听浏览器的请求报文了,要:3.1要将请求报文显示在服务器软件的文本框中3.2要分析浏览器发来的请求报文3.3要根据请求报文处理浏览器的请求页面4.生成响应报文,并输出到浏览器T5.关闭当前连接
主要界面功能流程描述功能1界面流程使用vs2010创建一个基于c#的窗体程序使用静态文本框,按钮等元素布置界面3.添加显示文本框用来显示“ip”,“端口号”,和“日志”给两个按钮的text重命名并在name里给其命名最终窗体界面如图所示:(注:我们默认服务器的ip地址为,端口号为5004)功能2创建浏览器和服务器的通信流程数据结构数据库表列表表名作用endpoint网络节点对象,用来传入ip号和端口号adress用来获得IP这个文本框里面的内容,为将套接字绑定到端口号中做准备threadwatch创建负责调用套接字监听的线程sokwatch负责监听浏览器的套接字sokconnection接收浏览器请求并生成相应的通信套接字对象isrunning用来控制监听循环是否退出模块列表模块名称(英文)功能备注模块1sokwatch.Bind(endpoint)将套接字绑定到指定的端口号上模块2sokwatch.Listen(10)设置监听队列(监听套接字能够同时处理的浏览器连接请求最大个数)模块3voidwatchConnectt()监听浏览器的连接请求模块4threadwatch=newThread(watchConnectt)实例化线程模块5threadwatch.Start()启动线程模块6voidshowmsg(stringmsg)用来在txtmsglog文本框中显示相应的连接信息功能3接收请求报文流程模块列表模块名称(英文)功能备注模块1publicdelegatevoidDGshowmsg(stringmsg)用来在控件上显示消息的委托类型新建类Dataconnection模块2publicdelegatevoidDGshowmsg(stringmsg)用来在控件上显示消息的委托类型新建类Gshowmsg,并用委托类型模块3publicDataconnection(Socketsokconnection,DGshowmsgdgshow)在Dataconnection类里,通过在构造函数传入参数的方式来传入与某个浏览器通信的套接字和线程模块4this.threadconnection=newThread(recmsg);直接在内部来创建通信线程对象模块5this.threadconnection.IsBackground=true;this.threadconnection.Start();启动该线程,并将其设置为后台线程arrmsg模块6length=sokconnection.Receive(arrmsg);将浏览器发来的数据装入缓存区,并获得真实的数据长度模块7Try{}Catch{}调用委托对象来在文本框中打印异常消息模块8dgshow(recmsg);在文本框中显示消息
数据结构数据库表列表表名作用conn创建Dataconnection类对象,并传入当前套接字和线程arrmsg字节数组,当做缓存区length用来存放浏览器发来的数据的长度recmsg用来存储已转换成字符串类型的数据功能4分析请求报文流程模块列表模块名称(英文)功能备注模块1publicHttpRequestmodel(stringrequeststr){}生成请求报文实体对象,并分析请求报文字符串,将每个语义字符都次实体类的相应属性中新建类HttpRequestmodel模块2string[]arrequest=requeststr.Replace("\r\n","籀").Split('籀');这里表示的是将‘\r\n’转换成‘籀’,便于处理,并分割字符新建类Gshowmsg,并用委托类型模块3string[]firstrow=arrequest[0].Split('');按照控件将已经分割好的字符再分割模块4给路径赋值
数据结构数据库表列表表名作用path定义页面路径字符串功能5读取文件流程模块列表模块名称(英文)功能备注模块1dataDir=System.IO.Directory.GetParent(dataDir).Parent.Parent.FullName;获得浏览器请求文件的物理路径默认该请求文件在工程目录下模块2Switch(){Case:Case:}根据请求文件的后缀名不同来做出不同的判断模块3voidProcessstaticPage(stringpath)该方法用来专门处理静态文件模块4using(FileStreamfs=newFileStream(path,FileMode.Open)){}使用文件流的方式来读取文件前提是要为FileStream导入命名空间
数据结构数据库表列表表名作用requestModel在dataconnecton类里创建请求报文实体对象dataDir用来存放当前执行程序的物理路径fileDir存储请求文件的物理路径extentionName存储请求文件的后缀名功能6生成响应报文流程模块列表模块名称(英文)功能备注模块1publicbyte[]GetHttpResponseHeader(){}返回响应报文头字符串默认该请求文件在工程目录下模块2returnSystem.Text.Encoding.UTF8.GetBytes(sbResponse.ToString());返回请求文件的字节数组模块3sokconnection.Send(model.GetHttpResponseHeader());利用套接字来将响应报文头发送回去模块4使用文件流的方式来读取文件前提是要为FileStream导入命名空间
数据结构数据库表列表表名作用arrfile以二进制形式存储的文件数据contentType默认的响应内容的类型sbResponse用来显示响应报文头model生成响应报文头对象
附录第三方组件使用的命名空间:usingSystem;usingSystem.Collections.Gen
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026秋部编版四年级上册语文第四单元单元培优卷(B卷)
- ISO45001-2026(DIS)职业健康安全管理体系要求及使用指南之11:6.1.3法律法规要求和其他要求的确定专业深度解读与应用(实施)指导材料(雷泽佳编制-2026A0)
- 能源行业数字化转型与低碳双模驱动策略研究
- 精益供应链向敏捷供应链转型的路径研究
- 现代供应链体系重构与韧性提升机制研究
- 新能源汽车产业链盈利结构综合分析
- 数据要素赋能新质生产力的内在机制与实证分析
- 数据治理在企业数字化转型中的分阶段实施框架
- 长周期资本驱动关键核心技术创新的内在逻辑研究
- 2026 年基于岗位需求的护理带教课程开发
- 城镇老旧街区更新改造项目可行性研究报告
- 山地智慧灌溉系统建设项目可行性研究报告(范文模板)
- 2026年浙江省综合性评标专家库评标专家考试在线题库
- 2026综合版《安全员手册》
- 2026年河北省衡水市初一新生入学分班考试真题含答案
- 肌少症疾病知识培训课件
- 2026年重庆市c证安全员考试试题及答案
- 2025年江西高考地理真题
- 多发性抽动症治疗新进展
- 天津市控告检察业务竞赛初赛试题含答案
- 奥特曼抽奖活动方案
评论
0/150
提交评论