应用程序之间互相通讯的几种方法.docxVIP

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
应用程序之间互相通讯的几种方法

应用程序之间互相通讯的几种方法   应用程序之间的数据交换(互相通讯)一直是困扰广大程序员的难题,尽管已经 出现了各式各样的解决方案,但迄今为止没有哪一种方案是完美无缺的。因此,只有 学习并了解了它们的优缺点后,才能在特定的情况下选择最佳方案,以满足最终的要 求。   1、共享   在硬盘上建立一个文件,一个应用程序往该文件里写数据(可以不关闭文件,但 必须刷新缓冲区),另一个应用程序以共享方式打开这个文件并读取其中的内容,这 便是最简单的一种数据交换方式。对于网络用户而言,只要两台终端上安装的都是 Win311 For Workgroup或Windows 95(或NT),则只要设置一下目录共享,映射成网 络驱动器,同样可以简单地实现数据交换。但它的缺点也是显而易见的:只能采取轮 询的方式获得必威体育精装版数据(效率低下),网络映射的驱动器绝对不能变动或取消(可靠 性差),所以这是一种“低级”的通讯方式。   2、DDE   每个Windows程序员都不会对DDE(动态数据交换)感到陌生,它是最早的基于 Windows的数据交换方法,有三种方式可供选择:冷连接、温连接和热连接。一般都 是由客户端向服务器端发出连接申请,并且必须指明服务器端的名字和标题。在连接 建立后,数据可以双向流动。典型的例子如抓图软件SnagIt,它提供了DDE接口,能 够让其它应用程序来控制它。DDE是完全向后兼容的,从16位平台转到32位,源代码 几乎不用修改。   DDE还有网络功能。使用过Win311 For Workgroup的人大概都还记得,它自带一 个非常吸引人的小程序“Chat”,能使两台计算机通过网络实时交谈,这在当时几乎 是一项创举。可是很少有人知道“Chat”使用的是一种特殊的DDE,即NetDDE。它的 基本工作原理仍然是DDE,但它能使一台计算机向在同一个网络中的另一台终端发消 息,而不像普通DDE 只能局限在同一台机器上。与其它的数据交换方式相比,DDE已 不够先进,而且Microsoft也不再积极支持DDE,所以它的前景不被看好。   3、WM_COPYDATA   Windows消息WM_COPYDATA功能强大,知之者却甚少。它的确切定义是:一个应用 程序向另一个应用程序传递数据时所发出的消息。众所周知,Windows 在很大程度上 依赖于消息机制,那么我们为什么不把数据放在消息中一起发送出去呢?这样,我们 只要调用SendMessage(),以对方窗体的句柄作为第一个参数,以含有指向实际数 据的指针结构的地址作为第二个参数,就可以把整个数据块当作消息发向另一个应用 程序。也许有的程序员会说,一个自定义的消息同样可以完成这样的工作。他只说对 了一半。自定义消息的确可以发送到其它的应用程序上去,但其原始数据所在的内存 区只有在发送过程中才是合法的,若在其它模块中存取该内存区就会导致“Access Violation”。而使用WM_COPYDATA 则不存在这个问题,因为Windows 本身会替你处 理这一切。深入钻研下去,你会发现它其实是先创建了一个文件映射的对象,将发送 方的原始数据先拷贝至映射文件,然后再在接收方对这个映射文件打开一个“视图” 。WM_COPYDATA 的不足之处在于:必须要有一个窗体来接收消息和数据(缺乏灵活性 ),数据在使用之前先得拷贝到一个映射文件(浪费资源)。   4、NetBIOS   从80年代开始,NetBIOS就是开发Client/Server类程序的标准接口。而当时其它 的解决方案几乎都是从UNIX系统上发展而来的。当然,对于今天的用户而言, NetBIOS已不是唯一的选择,他们可以从各种方案中择优选取。在Windows 95和NT平 台上,可以通过API函数Netbios()来调用NetBIOS功能。   NetBIOS兼容以下几种低层协议:NetBEUI协议(NBF)、NWLink NetBIOS(NWNBlink)、NetBIOS over TCP/IP(NetBT)。NetBIOS的优点是速度较快,缺 点是可靠性较差。   5、标准的Sockets和WinSock   Sockets是15年前在UNIX系统上提出来的,一开始主要是用于本地通讯,但很快 就应用在Client/Server体系上了。它的内核很简单:你可以将一个Socket看作是一 个双向的节点,一个应用程序可以通过它先与另一个程序建立连接(建立在一个双方 都认可的端上,以便于区分同时运行的几个通讯线程),然后就可以彼此交换数据了。   微软公司在其基础上创建了WinSock,专门用于Windows接口,与Socket完全兼容 。近年来基于TCP/IP协议的网络大行其道,Socket也随之获得

文档评论(0)

shenlan118 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档