电子传真Winsock程序实现方法
2012-06-13
电子传真在VC++环境下,网络传真Winsock程序主要有两类实现方法:一是直接使用Windows sockets API进行编程;二是使用MFC提供的CAsyncsocket和CSocket类进行编程。
1) Winsock API编程
群发传真直接使用Winsock API进行编程的特点是十分灵活,可以充分利用众多的Winsock API函数;缺点是编程比较烦琐。它主要包括以下三种的模型。
(1) select模型。select模型其思想便是利用select函数实现对socket通信的管理。使用 AAsyncSelect清楚可能的网络事件。
(2)AAsy11cSelect模型。利用该模型,应用程序可在一个套接字上接收以Windwos消息为基础的网络事件通知。在应用程序中,首先须用CreateWindow()函数创建窗口。
(3) WSEventSelect模型。 WSEventSelect模型允许应用程序在一个套接字上接收以事件对象为基础的网络事件通知。其与模型WSAAsyncSelect()的主要区别在于网络事件投递到一个时间对象上,而非以windows消息形式投递一个窗口。应用程序应首先创造一个事件对象并得到一个时间名柄,然后将其与某个套接字关联在一起,同时注册自己感兴趣的网络事件。
传真群发当网络事件发生后,就可用函数WSAEnumNe附orkEvents()调查发生了什么网络事件,在进行相应的处理。另外,调用线程处于函数WSAWaitForMultipleEvent()等待状态时,并不占用CPU时间。
上一篇: