003WINDOS网络编程技术.pdf

  1. 1、本文档共12页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
003WINDOS网络编程技术

下载 第3章 邮 槽 Microsoft Windows NT 、Windows 2000 、Windows 95 和Windows 98 (含第二版)—但 不包括Windows CE —提供了一种简单的单向“进程间通信”(interprocess communication, I P C )机制。这个机制的名字非常古怪,叫作“邮槽”(M a i l s l o t )。用最简单的话来说,通过 邮槽,客户机进程可将消息传送或广播给一个或多个服务器进程。在同一台计算机的不同进 程之间,或在跨越整个网络的不同计算机的进程之间,协助进行消息的传输。用邮槽来开发 应用程序是一件非常简单的事情,不要求对 T C P / I P或I P X这样的基层网络传送协议有着非常深 入的了解。由于邮槽是围绕一个广播通信体系设计出来的,所以当然不能指望能通过它实现 数据的“可靠”传输。然而,在某些特殊类型的网络编程环境中,假如对数据传输的可靠性 要求不高,那么邮槽仍然是一种非常有价值的技术。 例如,要想在自己办公室的所有人员之间建立一个简单的传信系统,便可考虑用邮槽来 设计这个程序。想象自己的办公室环境拥有大量工作站。恰巧,办公室目前苏打短缺。每隔 几分钟,每名工作站用户都有兴趣知道苏打机里还剩下多少可乐。利用邮槽,便可很轻易地 设计出这种程序。我们可简单地编制一个邮槽客户端应用,用它监视苏打数量,并以五分钟 为周期,将剩余的可乐数量广播给每一名感兴趣的工作站用户。由于邮槽并不能担保广播消 息的可靠传输,所以有些工作站用户也许收不到所有的更新通知。但在这种情况下,少数的 传输失败并不是个问题,因为消息每隔五分钟便会发送一遍,所以即使偶尔出错,收到信息 的频率也相当高,足以让工作站用户跟上目前的最新情况。 邮槽最大的一个缺点便是只允许从客户机到服务器,建立一种不可靠的单向数据通信。 而另一方面,邮槽最大的一个优点在于,它们使客户机应用能够非常容易地将广播消息发送 给一个或多个服务器应用。 本章将向大家解释如何开发一个实际的邮槽客户机/服务器应用。在深入解释消息的大 小问题之前,首先要介绍邮槽的一系列命名规范,它们对邮槽的总体行为进行着控制。接下 来,我们将详细讲述如何开发一个基本的客户机/服务器应用。在本章结束时,则会告诉大 家邮槽一些已知的问题,以及存在的各种局限,并提出相应的解决方案。 3.1 邮槽实施细节 邮槽是围绕 Wi n d o w s 文件系统接口设计出来的。客户机和服务器应用需要使用标准的 Wi n 3 2文件系统I / O (输入/输出)函数,比如R e a d F i l e和Wr i t e F i l e等等,以便在邮槽上收发数 据,同时利用Wi n 3 2文件系统的命名规则。邮槽必须依赖 Wi n d o w s重定向器,通过一个“邮槽 文件系统”(Mailslot File System, MSFS ),来创建及标识邮槽。第2章已对Wi n d o w s重定向器 进行了比较详细的说明。 3.1.1 邮槽的名字 对邮槽进行标识时,需遵守下述命名规则: 第3章计邮 槽计计55 下载 \ \ s e r v e r \ M a i l s l o t \ [ p a t h ] n a m e 请将上述字串分为三段来看: \ \ s e r v e r 、\ M a i l s l o t和\ [ p a t h ] n a m e 。第一部分\ \ s e r v e r 对应于 服务器的名字,我们要在上面创建邮槽,并在在上面运行服务器程序。第二部分 \ M a i l s l o t是一 个“硬编码”的固定字串,用于告诉系统这个文件名从属于 M S F S 。而第三部分\ [ p a t h ] n a m e 则 允许应用程序独一无二地定义及标识一个邮槽名。其中,“p a t h ”代表路径,可指定多级目录。 举个例子来说,对一个邮槽进行标识时,下面这些形式的名字都是合法的(注意 M a i l s l o t不得 变化,必须原文照输,亦即所谓的“硬编码”): \ \ O r e o \ M a i l s l o t \ M

文档评论(0)

jyf123 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档