首 页文档资料下载资料维修视频包年699元
请登录  |  免费注册
当前位置:精通维修下载 > 文档资料 > 家电技术 > 单元电路介绍 > 其它电路
基于IOCP的远程屏幕监控系统
来源:本站整理  作者:佚名  2011-08-24 08:03:54




3 服务器设计
    远程屏幕监控服务器的核心功能是将接收到的客户端的屏幕图像显示到一个服务器端窗口中,服务器通过此窗口对客户端进行远程控制。为了提高系统可靠性,网络协议采用面向连接的TCP协议,利用TCP协议中的拥塞避免以及超时和差错重传机制可以确保数据在传输的可靠性。
3.1 服务器监听套接字的实现
    在服务器端建立IOCP模型时,首先需要建立一个监听套接字,对于监听套接字,并不将它与完成端口相关联,而是调用WSAEventSelect为监听套接字注册FD_ACCEPT网络事件。该函数的声明如下:
    b.JPG
    之后创建一个监听线程,在此线程中可以循环调用WSAWaitForMultipleEvents等待事件对象被触发。在该函数正确返回之后,继续调用WSAEnumNetworkEvents函数列举出发生在套接字上的事件,如果是FD_ACCEPT事件,则接受该连接,并将新建的套接字与创建的完成端口相关联,并在此套接字上调用WSARecv投递接收数据的请求。
3.2 IOCP模型的实现
    要建立IOCP模型,需要在服务器启动监听线程时,首先创建一个完成端口对象,通过调用CreateIoCompletionPort来实现,之后调用GetSystemlnfo函数获得CPU的数量,根据CPU的数量创建一定数量的服务线程在此端口上等待完成事件的通知,一般来说,服务线程的数量大约是CPU数量的2倍。
    当监听套接字接收到一个新的连接时,再次调用CreateIoCompletionPort将接收套接字与我们先前创建的完成端口绑定。这里的完成键pComleKey是一个指向ClieNTContext结构体的指针,该结构体包含了当前套接字的一些相关信息,接受和发送数据所用的缓存。接下来需要定义一个与I/O操作相关的结构体,保存与I/O操作相关的信息。该结构体的定义如下:
    c.JPG

上一页  [1] [2] [3]  下一页

关键词:

文章评论评论内容只代表网友观点,与本站立场无关!

   评论摘要(共 0 条,得分 0 分,平均 0 分)
Copyright © 2007-2017 down.gzweix.Com. All Rights Reserved .
页面执行时间:40,390.63000 毫秒