| 深入Windows通信编程
| | 计算机 毕业论文下载一、windows通信机制 windows与dos编程的计算机 毕业论文下载重要差别在于windows程序是消息驱动和设备统一管理。体现在通信方面,dos中的计算机 毕业论文下载寄存器直接读写、bios调用和通信中断程序等编程方法都不能或不宜采用。windows通过通信驱动程序comm.drv与硬件接口,向程序员提供了多达17个标准函数,功能强大,但也增加了理解和编程的难度。 windows3.1通信函数主要有: opencomm 打开一通信设备 buildcimmdcb将一设备定义字符串转变为dcb数据结构 enablecommnotification使能或禁止传送wm_commnotify消 息 setcommstate设置通信设备状态 setcommeventmask设置通信事件掩码 readcomm从通信设备读字符 writecomm向通信设备写字符 flushcomm清除一发送或接收队列 getcommeventmask返回通信事件掩码 getcommstate返回设备控制块(dcb) getcommerror恢复通信设备状态 closecomm关闭一通信设备 dcb数据结构、其它通信函数及各函数的具体用法请参见有关资料。 一般windows通信编程应包括两部分:设备初始化及wm_commnotif y消息处理。 设备初始化典型流程如图1。 图1 wm_commnotify消息处理典型流程如图2。 图2 对于大多数实际通信来说,可能只需要处理流程图中的一部分。 设备初始化及wm_commnotify消息处理两部分密切相关。所有类型wm_commnotify消息的传送都是因为在初始化函数中进行了相应的设置。 换言之,可以根据通信的实际情况有选择地设置,控制windows向应用程序发送的wm_commnotify消息的数量和类型,以期达到高效、可靠的通信。例如,对于固定长度消息型的通信可以在enablecommnotification函数中设置cbwritenotify和cboutqueue参数为消息长度;对于以固定字符结尾的消息型通信可以在事件掩码中包括ev_rxflag,将dcb数据结构中的evtchar变量置为结尾字符,然后调用setcommstate和setcommeventmask函数;对于遵循v.25bis之类协议的通信,由于用到了大量信号线来作握手信号,则事件掩码中要包含ev_cts、ev_dsr、ev_rsld及ev_ring等;而对于文件传送型的通信,则宜将opencomm函数中的cbinque和cboutque变量、enableccommnotification中的cbwritenotify和cboutqueue变量设置为较大值,以加快文件传送速度。
| | | |
|