开发中要扬长避短。
目前常用的Wi
dows开发工具有VS5060、VS
et包括VB、BC、VFP、VJ、C等一组开发工具、delphi、CBuilderJBuilder、PB等。
在这些开发工具里面VFP和PB一般用来专门开发数据库系统它们具有灵活的数据库接口。
fVB和Delphi既可以方便地做出复杂的数据库管理系统又能轻松地完成操作系统级的任务。最优秀的是很容易做出漂亮的界面。
VC和Borla
dC着重于系统编程它们开放接口较多也最为灵活而且编译出的程序体积较小所以比较适合做系统工具类软件。缺点是短时间不容易掌握。其中Borla
d使用的VCL类库是为Delphi准备的并不是真正用C实现的。
VJ、Jbuilder和Java语言主要面向互联网应用。最大的优势是跨平台。
本课题为防火墙软件较多的使用系统接口而且界面简单。另外防火墙主要传播渠道是互联网这就要求体积应尽量的小安装尽量方便。所以选择VC为开发工具。
4系统设计与模块划分
41本课题要实现的具体功能
本设计实现的具体功能如下
1封包监视
1提供封包监视页面。
2提供清空监视列表停止开始监视及停止开始滚动功能。
2控管规则设置
1手工添加删除及修改控管规则。
2自学习添加控管规则。
3控管规则中目的网络IP地址段的设置。
4提供控管规则设置页面。
3封包过滤
1DLL给出设置工作模式和设置控管规则的接口函数。工作模式分为3种形式放行所有拒绝所有和过滤。
2DLL根据工作模式和控管规则对过往封包进行过滤。
3DLL将通过的网络封包通知EXE取走。
42程序工作流程图
Wi
sock2SPI是一个DLL程序它工作在API和DRIVER之间为上层应用程序提供服务。EXE与DLL构成软件的主题也是编写软件的主要工作。流程图如图1所示。
f图1防火墙工作流程图
43模块划分
431模块划分原则
模块划分是系统分析中非常重要的一部分下面是模块划分时的基本原则。
1独立性让模块直接内的关系减到最少。理想的状态就是模块之间没有关系但这种情况不符合现实。既然是同一个工程模块之间自然都会存在一定的联系只要想办法让模块之间的关系尽量简单就可以了。
2接口简单化让模块之间的接口尽量单纯、简单、易用。即让公用函数和公用变量尽量地少。
3分层处理吸取Wi
dows操作系统对模块做分层处理的经验。建立一些中间模块让两端的模块来完成相互调用的透明化。
4容易合并容易将划分的模块进行合并。例如将一个工程的各个功能模块分别设计成可执行文件然后用一个总模块将这些模块关联起来组成一个工程。这种情况下对模块独立性要求较高模块之间几乎没有任何关系。
5可测试性尽量使每个模块r