insock的非同步有5种I/O模型,学习中是否必须都要掌握? 看样子是IOCP最牛的,完全可以不深入理解另外四种就能能解决问题了?还是5种模型,在各种情形必须使用不同的应对方式? 都需要掌握吗? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 Windows情况想高效稳定,可以选择select或IOCP模型其他几种模型都很鸡肋WSAAsyncSelect和MFC的CAsyncSocket、CSocket用来练习可以WSAEventSelect偶尔搭配一下重叠模型或IOCP,一般是注册FD_ACCEPT事件重叠IO不如IOCP,重叠IO特耗EVENT(一次IO一个EVENT,EVENT可重用,前提是只能等前次IO完成才能进行下一次IO操作),每线程WaitForMultipleObjects最大数是64完成例程,效率不高,并发低(线程要用SleepEx,WaitFor...Ex,只能在系统处理IO时,处理一下数据)现有协议:webserver,ftp,telnet等等,基本都是字符串封包,如果发生粘包情况,IOCP不好处理,这些协议用select模型实现的多webserver等短连接情况也可用selectIOCP,一般是自定义封包,封包头+封包体,封包头固定大小,包含有整个封包的长度大小,一般用于长连接 请楼上的解释下现有协议:webserver,ftp,telnet等等,基本都是字符串封包, 如果发生粘包情况,IOCP不好处理,这些协议用select模型实现的多 webserver等短连接情况也可用select 谢谢 如要要增加通信模块的独立性,select模型是不是更方便一点 从模块的独立性来讲,select 和 iocp一样的。甚至iocp更好。 在很多地方用IOCP,感觉有点牛刀杀鸡 没有大并发的情况下还是异步socket就可以了 同意,个人感觉根据项目的大小,采用适当的模型即可.当然从写服务器的角度考虑,也就是SELECT和IOCP模型.其余的几个都感觉更像是学习C/S模式而使用的学习形模型,真的要使用起来恐怕不够用.不过既然是学习的话,都学习也不难,而且本来几个都是由易到难的,基本的两三个都不能掌握,到了IOCP之类的模型就和看天书一样了. 关于对话框的border问题 位图坐标问题 问问 如何实现软件未响应,重新启动呢?? 求教:保存CTreeCtrl的HTREEITEM的问题! Callback glTranslatef的问题 怎样在一个程序中定义多种文件类型? 为什么timeKillEvent不灵??? 嵌入VC++6.0的工具怎么做 ? 请问,用什么函数或方法,可以得到本机的IP地址(在局域网里的) 求个微软屏幕键盘的vc源码,从网上找了个不全! DirectShow Connect问题
想高效稳定,可以选择select或IOCP模型
其他几种模型都很鸡肋WSAAsyncSelect和MFC的CAsyncSocket、CSocket用来练习可以WSAEventSelect偶尔搭配一下重叠模型或IOCP,一般是注册FD_ACCEPT事件重叠IO不如IOCP,重叠IO特耗EVENT(一次IO一个EVENT,EVENT可重用,前提是只能等前次IO完成才能进行下一次IO操作),每线程WaitForMultipleObjects最大数是64完成例程,效率不高,并发低(线程要用SleepEx,WaitFor...Ex,只能在系统处理IO时,处理一下数据)现有协议:webserver,ftp,telnet等等,基本都是字符串封包,
如果发生粘包情况,IOCP不好处理,这些协议用select模型实现的多
webserver等短连接情况也可用selectIOCP,一般是自定义封包,封包头+封包体,封包头固定大小,包含有整个封包的长度大小,一般用于长连接
现有协议:webserver,ftp,telnet等等,基本都是字符串封包,
如果发生粘包情况,IOCP不好处理,这些协议用select模型实现的多
webserver等短连接情况也可用select
谢谢
同意,个人感觉根据项目的大小,采用适当的模型即可.
当然从写服务器的角度考虑,也就是SELECT和IOCP模型.其余的几个都感觉更像是学习C/S模式而使用的学习形模型,真的要使用起来恐怕不够用.不过既然是学习的话,都学习也不难,而且本来几个都是由易到难的,基本的两三个都不能掌握,到了IOCP之类的模型就和看天书一样了.