WinSock是BSD Socket在Windows上实现, 它在Windows上引入了基于事件机制和消息机制的I/O模型, 分别是WSAEventSelect与WSAAsyncSelect, 另外还有Overlapped I/O与CompletionPort; 同时也有UNIX/LINUX上常用的select。
面对这么多的I/O模型,开发客户端且有窗口的话,我会选择WSAAsyncSelect 模型,因为它是基于窗口消息机制的;基于控制台的话,我会选择select模型。如果开发的是服务器,我还是用select模型,容易管理多个套接字;对于CompletionPort到目前为止没有做过,因为没有做过要求性能特高的服务器。
另外,大家对于WinSock与MFC的CASyncSocket、CSocekt是怎么选择的?也就是说什么时候用WinSock, 什么时候用MFC Socket?
当开发的是一个基于MFC DOC/VIEW的客户端应用,我会用CSocket;用CSocket的另外一个原因是刚开始学的时候是用它。
CAsyncSock是对WinSock WSAAsyncSelect的封装,到目前为止没用过它。
以上我个人的选择,欢迎大家畅所欲言!!
面对这么多的I/O模型,开发客户端且有窗口的话,我会选择WSAAsyncSelect 模型,因为它是基于窗口消息机制的;基于控制台的话,我会选择select模型。如果开发的是服务器,我还是用select模型,容易管理多个套接字;对于CompletionPort到目前为止没有做过,因为没有做过要求性能特高的服务器。
另外,大家对于WinSock与MFC的CASyncSocket、CSocekt是怎么选择的?也就是说什么时候用WinSock, 什么时候用MFC Socket?
当开发的是一个基于MFC DOC/VIEW的客户端应用,我会用CSocket;用CSocket的另外一个原因是刚开始学的时候是用它。
CAsyncSock是对WinSock WSAAsyncSelect的封装,到目前为止没用过它。
以上我个人的选择,欢迎大家畅所欲言!!
解决方案 »
- visual c++编一个数据库倒底有多难
- 可以通过实例句柄找窗口句柄吗?
- udp包发送时如何控制速率?
- 关于 psapi的问题
- 如何创建一个32位色深的设备描述表?
- 关于日期查询的问题
- 怎么得到Excel文件的所有sheet页名称?
- 主对话框里面有一个按钮,按后出现一个模式对话框.现在的问题是我怎么在模式对话框里获取主对话框的数据
- 如何在Listbox中添加数据?在线等答案!解决就结帖!
- 请问怎样才能在Dialog上的ToolBar中使用256色位图?
- 在不同进程中的两个窗体hWnd1,hWnd2如何让hWnd2始终在hWnd1窗体的上面
- 关于CListCtrl选中item中编辑小项中的问题
用api的话,小数量的话用WSAEventSelect不错,大了只能用iocp了。
你是做客户端又有窗口,当然应该选择WSAEventSelect
iocp就没有必要了