摘要: 两种I/O模式一.选择模型二.异步选择三.事件选择四.重叠I/O模型五.完成端口模型五种I/O模型的比较两种I/O模式1、两种I/O模式阻塞模式:执行I/O操作完成前会一直进行等待,不会将控制权交给程序。套接字默认为阻塞模式。可以通过多线程技术进行处理。非阻塞模式:执行I/O操作时,Winsock函数会返回并交出控制权。这种模式使用起来比较复杂,因为函数在没有运行完成就进行返回,会不断地返回WSAEWOULDBLOCK错误。但功能强大。如果你想在Windows平台上构建服务器应用,那么I/O模型是你必须考虑的。Windows操作系统提供了选择(Select)、异步选择(WSAAsyncSele 阅读全文
posted @ 2014-02-25 22:00 maowang 阅读(2053) 评论(0) 推荐(1) 编辑
摘要: FD_ZERO,FD_ISSET这些都是套节字结合操作宏看看MSDN上的select函数,这是在select io 模型中的核心,用来管理套节字IO的,避免出现无辜锁定.int select( int nfds,fd_set FAR *readfds, fd_set FAR *writefds, fd_set FAR *exceptfds, const struct timeval FAR *timeout );第一个参数不管,是兼容目的,最后的是超时标准,select是阻塞操作当然要设置超时事件.接着的三个... 阅读全文
posted @ 2014-02-25 21:27 maowang 阅读(15574) 评论(0) 推荐(0) 编辑
摘要: 1)头文件windows下winsock.h/winsock2.hlinux下sys/socket.h 错误处理:errno.h2)初始化windows下需要用WSAStartupWSADATA wsaData; err = WSAStartup(0x202,&wsaData); if ( err != 0 ) { return 0; } else if ( LOBYTE( wsaData.wVersion ) != 2 || HIBYTE( wsaData.wVersion ) != 2 ) //检测是否支持这个版本的socket { WSACleanup( ); return 0. 阅读全文
posted @ 2014-02-25 21:20 maowang 阅读(6200) 评论(0) 推荐(0) 编辑