那个属性页窗口而是一个隐藏的窗口它继承自CMrameW
d是一个无模式窗口他隐藏显示充当接受机用来接受DLL及其他模块发送过来的消息然后对消息进行相应的处理。
每一个连网的程序连网之前都会建立一个Socket连接。这时钩子程序就会起作用把截获的底层服务进行“过滤”。及先调用自定义的函数再转给下层服务提供者函数。我就是在这一层实现封包过滤的。把规则与功能写到这一层。这一层的实现是本课题的核心。
f2WINSOCK2SPI编程技术
Wi
sock2是Wi
dowsSockets的20版本在此之前的版本是11。与11版本相比20版本引入了一种新的叫做SPI的编程接口。利用这种技术可以在Socket中插入一曾层从而可以完成诸如扩展TCPIP协议栈网络安全控制等功能所以这是一个非常强大而且有用的接口下面介绍这种编程技术。
21WINSOCK2SPI基础
Wi
sock是为上层应用程序提供的一种标准网络接口上层应用程序不用关心Wi
sock实现的细节它为上层应用程序提供透明的服务。
Wi
sock2引入的一个新的功能就是打破服务提供者的透明让开发者可以编写自己的服务提供者接口程序即SPI程序。SPI以动态链接库的形式存在它工作在应用层为上层API调用接口函数。Wi
sock2是一个接口不是一个协议。作为接口它只能发现和利用底层传输协议完成通信。
自己编写的SPI程序安装到系统之后所有的Wi
sock请求都会发送到这个程序并由它完成网络调用。由于系统提供的SPI已经可以完成网络传输功能所以自己编写的SPI没有必要重新编写这部分功能。一般可以直接调用系统函数完成网络传输这样工作的效果就是“钩子程序。
Wi
sock2SPI除了有完成网络传输的传输服务提供者还有提供友好名称服务的名字空间服务提供者。传输服务提供者能够提供建立通信、传输数据、流量控制和错误控制等服务。名字空间服务提供者把一个网络协议的地址属性和一个或多个用户友好名称关联起来这样可以起用与协议无关的名字解析方案。22传输服务提供者
传输服务提供者又分为基础服务提供者和分层服务提供者。基础服务提供者和分层服务提供者都开放相同的SPI接口所不同的是基础服务提供者位于提供者的最底层。所以编写基础服务提供者和分层服务提供者基本相同。但安装是却需要将基础服务提供者安装在服务提供者加载顺序链的最底端而分层服务提供者则根据需要分布在顺序链的中间。
3开发平台与开发工具
开发平台如题说明以Wi
dows平台为主重点讨论开发工具的选择。
根据不同的工程选择不同的开发工具可以有效地提高工作效率。不同的开发工具各有各的优点同时又各有各的不足在r