设为首页 加入收藏
   
     
   
科技•信息
 
浅析计算机Windows软件的网络通信系统
双击自动滚屏 发布者:admin 时间:2011-2-25 16:11:35 阅读:309次 【字体:

浅析计算机Windows软件的网络通信系统

 

  摘要:计算机Windows软件的通信网络是指在Windows环境下,计算机技术和通信技术相结合而形成的一种新通信方式,主要是满足数据通信的需要。它将不同地理位置、具有独立功能的多台计算机、终端及附属设备用通信链路连接起来,并配备相应的面络软件,以实现通信过程中资泺共享而形成的通信系统。
  
  关键词:计算机;Windows软件;网络通信系统
  
  随着计算机网络和数据通信发展迅速。各国都通过建成的公用数据通信网享用各数据库资源和网络设备资源。而Mcn~ofi公司的Windows系统具有友好的人机图形界面,易于管理的用户和组,强大的服务器组件等优点,而且其自身丰富强大的网络功能为开发提供了良好的工作环境,因而成为当前的主流网络操作系统。计算机通信技术、数据库技术相基于两者基础上的联机检索技术已广泛应用予信息服务领域。从报刊、人工采集、会员单位组织的传统信息服务方式正逐步被以数据库形式组织的信息通信计算机网络供用户联机检索所代替。信息量和随机性增大,信息更新加快。信息价值明显提高,信息处理和利用更加方便。
  因此,计算机网络通信系统是信息社会的显着标志,在信息处理和传递中占重要位置。
  
  一、Windows软件的网络通信机制
  Windows与DOS编程的重要差别在于Windows程序是消息驱动和设备统一管理。体现在通信方面,DO S中的寄存器直接读写、BIOS调用和通信中断程序等编程方法都不能或不宜采用。Windows通过通信驱动程序COMM.DRV与硬件接口,向程序员提供了多达17个标准函数,功能强大,但也增加了理解和编程的难度。
  Windows3.1通信函数主要有:
  OponComm打开一通信设备BuildCimmDCB将一设备定义字符串转变为DCB数据结构使能或禁止传送WM_COMMNOTIFY消息SetCommState设置通信设备状态SetCommEventMask设置通信事件掩码ReadComm从通信设备读字符WriteC~mm向通信设备写字符HushComm清除一发送或接收队列GetCommEventJIlask返回通信事件掩码Ge【c0IllⅡlstate返回设备控制块(DCB)GetCommError恢复通信设备状态CloseComm关闭一通信设备DCB数据结构、其它通信函数及各函数的具体用法请参见有关资料。
  一般Windows通信编程应包括两部分.设备初始化及WM_COMMNOTIFY消息处理。备初始化及WM_COMMNOTIFY消息处理两部分密切相关。所有类型WM_COMMNOTWY消息的传送都是因为在初始化函数中进行丁相应的设置。
  
  二、Windows环境下的网络编程
  (一)Windows3.1下的网络鳊程在Windows中,NetBIOS最好用异步命令以防止阻塞系统,在windows里,可以调用一个AH 函数NetBIOS CALL(~ E编语言中调用),以取代软中断调用。下面以数据报为例,简要说明工作站间实时通信程序的基本工作流程。
  1.在Windows窗口主函数Win Main中先确定通信双方的名称。并将远方名增加进Net—BIOS名字表中,然后发出异步实时数据接收请求;
  2.进入Windows消息处理循环.执行窗口函数MainWndPmc,根据应用程序消息队列完成相应处理;
  3.用户关闭窗口时,终止消息循环,删除远方名字。
  (二)Window~下的网络缟程Wind,.,ws下与标准NetBIOS的网络编程存在着一些差异。首先它使用原NCB末尾保留的四个字节作Nob--event项,它是一个事件句柄,在32位操作系统中指向异步事件处理线程。这更符合32位Windows环境下的抢先多任务进程的特点,减少消耗更多的资源。其次,摒弃了原来的汇编级POST例程.允许使用更简明易懂的c语言来处理NetBIOS命令的返回。同时NCB的移动问题也得到了解决,即NCB的保护和调用由系统自动完成,应用程序无需过问。再之.在DO S环境下,NetBIOS的编程设计中,需要对INTSCH中断进行编程。而在32位环境中,这些令人头痛和费解的编程规贝lj和中断、寄存器等汇编代码已不再是一个问题,此时,只需简单地填写完成相应网络命令的NCB结构,然后调用NetBIOS函数即可,函数调用格式:UCHAR NetBIOS(PNCB Pncb);BetBlOS函数只有一个参数。该参数是指向NCB结构的指针。
  在任意节点首先发出任意侦听 s 渝令,以便能侦听到其它任何一节点发来的呼叫连接请求。当侦听到一个请求后NCB成功返回。同时NetBIOS分配一个本地会话号,会话连接建立成功。此时,节点应再发生任意侦听(IJsten)~令以便能继续接收其它节点的呼叫请求,同时,还应发出一个任意接收(RoceiveAny)~令,用来接收已建立会话联系的呼叫端发来的数据。当接收到数据时NCB命令返回,此时和侦听相同也应当再次发出任意命令,在应用程序通信期问,应当始终保持有一个Listen命令和一个Receive Any命令处理悬挂状态。如果命令出错.再重新发出命令,这样可以随时响应其它节点的呼叫请求并及时接收其它节点发来的数据。
  
  三、中间层驱动程序开发工具
  NDISND1S是由微软和3COM公司共同发布用于Windows系列平台下不同层次网络驱动程序开发的软件包。ND/S提供了强大的功能函数库,将微端口和中间驱动程序从操作系统中分离了出来。开发时通过NDIS可以进行系统调用.因此编写驱动程序时只需要编写必要的代码,就可以完成对系统硬件的驱动。NDIS从4.0版本开始支持IMD的开发.NDIS位于协议驱动程序和网卡驱动程序之间。它主要用于连接不同网络媒体.即协议转换过滤来自上下层的数据包;并根据各个鼹卡的工作状态合理分配数据包,实现多块网卡的负载平衡。ND1S的地位特殊,相对于网卡驱动程序它是协议驱动程序.而对协议驱动而言,它又是虚拟的网卡驱动程序。
  IMD的主要功能。由于IMD的特殊地位使得它要起到承上启下的作用,因此IMD的主要功能是:
  (一)关联上下程序在NDIS的上/下边界分别要提供-一系列Miniportxxx/Protocolxxx函数,完成同TCWrP协议栈、NIC驱动程序的关联。
  (二)初始化环境NDIS的主入口点DriverEntry要完成端口和协议注册,实现硬件资源定位,建立指向其他驱动程序函数的指针等初始化工作,使得加载程序被准确识别。具体说,在IMD中DriverEntry至少应该完成:
  1.对NdisMitializeWrapper的调用,并保存NdiswWrapperHandle中返回的旬
  2.传递上一步保存的句柄,调用NdislMRegisterLayeredMiniport注册驱动程序的MiniportXxx函数;
  3.如果驱动程序随后要绑定到低层NDIS驱动程序上,则调用NdisRegisIeProtocol注册驱动程序的ProtocolXxx函数。
  
  四、结束语
  总而言之,计算机网络通信将是信息产业发展最快的领域,数据通信将在国民经济中起着举足轻重的作用。如何更快加速计算机Windows软件的网络通信系统发展,是急需关注的问题。

上一篇|下一篇

 相关评论

暂无评论

 发表评论
 昵称:
 评论内容:
 验证码:
  
打印本页 || 关闭窗口
 
 

咨询电话: 13891856539  欢迎投稿:gmlwfbzx@163.com  gmlwfb@163.com
617765117  243223901(发表)  741156950(论文写作指导)63777606     13891856539   (同微信)

All rights reserved 版权所有 光明论文发表中心 公司地址:西安市碑林区南大街169号-6
CopyRight ©  2006-2009  All Rights Reserved.


  制作维护:中联世纪  网站管理
访问 人次
国家信息产业部ICP备案:陕ICP备17019044号-1 网监备案号:XA12993