非阻塞模式开发
|
syncSelect()函数会把套接字设置为非阻塞模式,该函数会绑定指定套接字到一个窗口。当该套接字有网络事件发生时,会向绑定窗口发送相应的消息。该函数的参数含义说明如下。 S:指定要改变工作模式为非阻塞模式的套接字。 hWnd:指定当发生网络事件时接收消息的窗口。 wMsg:指定当网络事件发生时向窗口发送的消息。该消息是一个自定义消息,定义自定义消息的方法是在 WM_USER 的基础上加一个数值,比如(WM_USER + 1)。 lEvent:指定应用程序感兴趣的通知码。它可以被指定为多个通知码的组合。常用的通知码有 FD_READ(套接字收到对端发来的数据包)、FD_ACCEPT(监听中的套接字有连接请求)、FD_CONNECT(套接字成功连接到对方)和 FD_CLOSE(套接字对应的连接被关闭)。在指定通知码时不需要全部将其指定。对于基于 TCP 协议的客户端来说,FD_ACCEPT 是没有意义的;对于基于 TCP 的服务端来说,FD_CONNECT 是没有意义的;对于基于 UDP 协议的客户端和服务器端来说,FD_ACCEPT、FD_CONNECT 和 FD_CLOSE 都是没有意义的。 在了解如何将套接字设置为非阻塞模式以后,这里完成一个简单的远程控制工具。这里要编写的远程控制工具是基于C/S模式的,即客户端/服务器端模式的架构。客户端通过发送控制命令,操作服务器端接收到控制命令后响应相应的事件,完成特定的功能。 这个远程控制的服务器端只简单实现以下几个功能。
1. 远程控制软件框架设计
远程控制分为控制端和被控制端,控制端通常为客户端,而被控制端通常为服务器端。对于客户端来说,它需要3种通知码,即FD_CONNECT、FD_CLOSE和FD_READ。对于服务器端来说,它需要3种通知码,即FD_ACCEPT、FD_CLOSE和FD_READ,如图1所示。 (编辑:玉林站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |


