共有五种类型的套接字I/O模型,可让Winsock应用程序对I/O进行管理,它们包括: select(选择)、WSAAsyncSelect(异步选择)、WSAEventSelect(事件选择)、overlapped(重叠)以及 completion port(完成端口)。WSAAsyncSelect(异步选择)是最简单也最好理解的模式,因为用这个模式你都不需要明白多线程的编程知识~
话不多说,先上代码(下面的代码不包含异常处理,仅为学习使用):
关于WSAAsyncSelect的一些说明:
1.如果用这种模式,你的程序必须要有一个Windows窗体;
2.首先你要自己定义一个消息,当连接上有“动作”(看你在WSAAsyncSelect时设置了哪些动作)时,你的窗体就会收到这个消息;
3.Msg.WParam表明了是哪个连接,Msg.LParam表明了是什么“动作”(读、写、关闭、连接等等);
4.WSAAsyncSelect的第四个参数表明了它可以监视哪些动作,常用的有FD_Accept, FD_Read, FD_Write, FD_Close;