网站导航免费论文 原创论文 论文搜索 原创论文 网学软件 学术大家 资料中心 会员中心 问题解答 原创论文 论文素材 设计下载 最新论文 下载排行 论文上传 在线投稿 联系我们
返回网学首页
网学联系
最新论文 推荐专题 热门论文 素材专题
当前位置: 网学 > 编程文档 > VC++ > 正文
Winsock编程宝典
来源:Http://myeducs.cn 联系QQ:点击这里给我发消息 作者: 用户投稿 来源: 网络 发布时间: 12/10/15
下载{$ArticleTitle}原创论文样式
ok( FARPROC lpBlockFunc )
参数: lpBlockfunc 指向要装设的 blocking hook 函式的位址的指标
传回值: 指向前一个 blocking hook 函式的位址的指标
说明: 此函式让使用者可以设定他自己的 Blocking Hook 函式,以取代原先系统预设的函式。被设定的函式将会在应用程式呼叫到「blocking」动作时执行。唯一可在使用者指定的 blocking hook 函式中呼叫的 Winsock 介面函式只有 WSACancelBlockingCall()。

  假设我们自己设计了一个 Blocking Hook 函式叫 myblockinghook(),那麽在程式中向 Winsock 系统注册的方法如下:(其中 _hInst 代表此 task 的 Instance)

FARPROC lpmybkhook = NULL;
lpmybkhook = MakeProcInstance( (FARPROC)myblockinghook, _hInst) );
WSASetBlockingHook( (FARPROC)lpmybkhook );

(图 2.)设定自己的 Blocking Hook 函式

我们在设定自己的 Blocking Hook 程式後,仍可以利用 WSAUnhookBlockingHook() 函式,来取消我们设定的 Blocking Hook 函式,而变更回原先系统内定的 Blocking Hook 函式。

◎ WSAUnhookBlockingHook():复原系统预设的 blocking hook 函式。
格式: int PASCAL FAR WSAUnhookBlockingHook( void )
参数: 无
传回值: 成功 - 0
失败 - SOCKET_ERROR (呼叫 WSAGetLastError() 可得知原因)
说明: 此函式取消使用者设定的 blocking hook 函式,而回复系统原先预设的 blocking hook 函式。

  最後笔者要再说明一点,一个应用程式所设定的 Blocking Hook 函式,只会被这个应用程式所使用;其他的应用程式并不会执行到您设定的 Blocking Hook 函式的。另外,若非极有必要,最好是不要任意变更系统的 Blocking Hook 函式;因为一旦您没有设计好的话,整个 Windows 环境可能就完蛋了。

(图 3.)使用自己的 Blocking Hook 函式时该注意事项

【结语】

  四期的「Winsock 应用程式设计篇」在此结束了;笔者除了介绍 Winsock API 外,也将自己亲身设计 winsock.dll 的经验与各位读者分享了;希望这几期的文章,对於国内想要在 Winsock 1.1 环境上开发网路应用程式的读者有些许的帮助。谢谢大家。

  • 下一篇资讯: WINSOCK 1.1教程
  • 网学推荐

    免费论文

    原创论文

    浏览:
    设为首页 | 加入收藏 | 论文首页 | 论文专题 | 设计下载 | 网学软件 | 论文模板 | 论文资源 | 程序设计 | 关于网学 | 站内搜索 | 网学留言 | 友情链接 | 资料中心
    版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
    Copyright 2008-2015 myeducs.Cn www.myeducs.Cn All Rights Reserved
    湘ICP备09003080号