Windows CE下的非阻塞套接字编程

  我们知道Windows CE不支持PC版Windows可用的WSAAsync异步调用,不过我们仍然可以将套接字从默认的阻塞模式转换到非阻塞模式.在非阻塞模式下,所有可能需要等待成功执行其功能的套接字调用都会立刻返回WSAEWOULDBLOCK错误代码.接着我们可以在此后再次调用阻塞的函数来完成任务.

  可以使用ioctlsocket函数将套接字设置成非阻塞模式.

BOOL fBlocking = FALSE;

ioctlsocket(sock, FIONBIO, &fBlocking);

接下来我们可以使用select函数来等待套接字事件.

fd_set fdReadSocks;

FD_ZERO(&fdReadSocks);

FD_SET(hSock, &fdReadSocks);

int rc = select(0, &fdReadSocks, NULL, NULL, NULL);

if (rc != SOCKET_ERROR)

{

  if (FD_ISSET(hSock, &fdReadSocks))

    // A read event occurred in socket

}

阅读更多
个人分类: Windows CE
想对作者说点什么? 我来说一句

Linux非阻塞套接字client

2013年09月16日 20KB 下载

没有更多推荐了,返回首页

不良信息举报

Windows CE下的非阻塞套接字编程

最多只允许输入30个字

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭