软件开发设计文档实用模板.docx

上传人:b****0 文档编号:548045 上传时间:2022-10-11 格式:DOCX 页数:11 大小:38.56KB
下载 相关 举报
软件开发设计文档实用模板.docx_第1页
第1页 / 共11页
软件开发设计文档实用模板.docx_第2页
第2页 / 共11页
软件开发设计文档实用模板.docx_第3页
第3页 / 共11页
软件开发设计文档实用模板.docx_第4页
第4页 / 共11页
软件开发设计文档实用模板.docx_第5页
第5页 / 共11页
点击查看更多>>
下载资源
资源描述

软件开发设计文档实用模板.docx

《软件开发设计文档实用模板.docx》由会员分享,可在线阅读,更多相关《软件开发设计文档实用模板.docx(11页珍藏版)》请在冰豆网上搜索。

软件开发设计文档实用模板.docx

软件开发设计文档实用模板

 

软件开发设计文档

 

文档管理信息表

主题

web服务器

版本

1.0

内容

可响应客户端发送文件请求的web服务器

关键字

套接字,请求报文,响应报文,tcp编程

参考文档

创建时间

2016/4/2

创建人

吴鑫

最新发布日期

2016/4/2

 

文档变更纪录

更改人

日期

更改内容

何鑫

2016/4/4

创建文件

 

开发规划

开发人员

角色

主要职责

负责模块

人员

备注

何鑫

⏹负责编写窗口界面

⏹创建通信套接字建立连接

⏹获取http请求,解析请求报文

⏹封装文件到http响应报文中,并发送该响应报文

⏹软件的测试与优化

 

⏹xxx模块

xxx

开发环境和工具

开发工具

工具

作用

Microsoftvisualstudio2010

web服务器,窗口界面

总体设计

概念术语描述

术语1

静态文本框

术语2

请求报文

响应报文

基本设计描述

1.传入一个与某个浏览器通信的套接字

2.启动一个线程来监听浏览器接收到的数据recive

3.如果监听浏览器的请求报文了,要:

3.1要将请求报文显示在服务器软件的文本框中

3.2要分析浏览器发来的请求报文

3.3要根据请求报文处理浏览器的请求页面

4.生成响应报文,并输出到浏览器T

5.关闭当前连接

主要界面功能流程描述

功能1界面流程

1.使用vs2010创建一个基于c#的窗体程序

2.使用静态文本框,按钮等元素布置界面

3.添加显示文本框用来显示“ip”,“端口号”,和“日志”

3.给两个按钮的text重命名并在name里给其命名

4.最终窗体界面如图所示:

(注:

我们默认服务器的ip地址为127.0.0.1,端口号为5004)

功能2创建浏览器和服务器的通信流程

数据结构

数据库表列表

表名

作用

endpoint

网络节点对象,用来传入ip号和端口号

adress

用来获得IP这个文本框里面的内容,为将套接字绑定到端口号中做准备

threadwatch

创建负责调用套接字监听的线程

sokwatch

负责监听浏览器的套接字

sokconnection

接收浏览器请求并生成相应的通信套接字对象

isrunning

用来控制监听循环是否退出

模块列表

模块名称(英文)

功能

备注

模块1

sokwatch.Bind(endpoint)

将套接字绑定到指定的端口号上

模块2

sokwatch.Listen(10)

设置监听队列(监听套接字能够同时处理的浏览器连接请求最大个数)

模块3

voidwatchConnectt()

监听浏览器的连接请求

模块4

threadwatch=newThread(watchConnectt)

 

实例化线程

模块5

threadwatch.Start()

启动线程

模块6

voidshowmsg(stringmsg)

用来在txtmsglog文本框中显示相应的连接信息

功能3接收请求报文流程

模块列表

模块名称(英文)

功能

备注

模块1

publicdelegatevoidDGshowmsg(stringmsg)

用来在控件上显示消息的委托类型

新建类Dataconnection

模块2

publicdelegatevoidDGshowmsg(stringmsg)

用来在控件上显示消息的委托类型

新建类Gshowmsg,并用委托类型

模块3

publicDataconnection(Socketsokconnection,DGshowmsgdgshow)

在Dataconnection类里,通过在构造函数传入参数的方式来传入与某个浏览器通信的套接字和线程

模块4

this.threadconnection=newThread(recmsg);

直接在内部来创建通信线程对象

模块5

this.threadconnection.IsBackground=true;

this.threadconnection.Start();

启动该线程,并将其设置为后台线程arrmsg

模块6

length=sokconnection.Receive(arrmsg);

将浏览器发来的数据装入缓存区,并获得真实的数据长度

模块7

Try{}

Catch{}

调用委托对象来在文本框中打印异常消息

模块8

dgshow(recmsg);

在文本框中显示消息

数据结构

数据库表列表

表名

作用

conn

创建Dataconnection类对象,并传入当前套接字和线程

arrmsg

字节数组,当做缓存区

length

用来存放浏览器发来的数据的长度

recmsg

用来存储已转换成字符串类型的数据

功能4分析请求报文流程

模块列表

模块名称(英文)

功能

备注

模块1

publicHttpRequestmodel(stringrequeststr)

{}

生成请求报文实体对象,并分析请求报文字符串,将每个语义字符都次实体类的相应属性中

新建类HttpRequestmodel

模块2

string[]arrequest=requeststr.Replace("\r\n","籀").Split('籀');

这里表示的是将‘\r\n’转换成‘籀’,便于处理,并分割字符

新建类Gshowmsg,并用委托类型

模块3

string[]firstrow=arrequest[0].Split('');

按照控件将已经分割好的字符再分割

模块4

给路径赋值

数据结构

数据库表列表

表名

作用

path

定义页面路径字符串

功能5读取文件流程

模块列表

模块名称(英文)

功能

备注

模块1

dataDir=System.IO.Directory.GetParent(dataDir).Parent.Parent.FullName;

获得浏览器请求文件的物理路径

默认该请求文件在工程目录下

模块2

Switch()

{

Case:

Case:

}

根据请求文件的后缀名不同来做出不同的判断

模块3

voidProcessstaticPage(stringpath)

该方法用来专门处理静态文件

模块4

using(fs=new(path,)){}

使用文件流的方式来读取文件

前提是要为导入命名空间

数据结构

数据库表列表

表名

作用

requestModel

在dataconnecton类里创建请求报文实体对象

dataDir

用来存放当前执行程序的物理路径

 

存储请求文件的物理路径

extentionName

存储请求文件的后缀名

功能6生成响应报文流程

模块列表

模块名称(英文)

功能

备注

模块1

publicbyte[]GetHttpResponseHeader(){}

返回响应报文头字符串

默认该请求文件在工程目录下

模块2

returnSystem.Text.Encoding.UTF8.GetBytes(sbResponse.ToString());

返回请求文件的字节数组

模块3

sokconnection.Send(model.GetHttpResponseHeader());

利用套接字来将响应报文头发送回去

模块4

使用文件流的方式来读取文件

前提是要为导入命名空间

数据结构

数据库表列表

表名

作用

arrfile

以二进制形式存储的文件数据

contentType

默认的响应内容的类型

sbResponse

用来显示响应报文头

model

生成响应报文头对象

附录

第三方组件

使用的命名空间:

usingSystem;

usingSystem.Collections.Generic;

usingSystem.ComponentModel;

usingSystem.Data;

usingSystem.Drawing;

usingSystem.Linq;

usingSystem.Text;

usingSystem.Windows.Forms;

usingSystem.Net.Sockets;

usingSystem.Net;

usingSystem.Threading;

参考资料

自己动手写web服务器(视频版)

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 党团工作 > 入党转正申请

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1