使用WINDOWS SOCKET 2 API 写网络程序时,WSAEventSelect和select哪个是更好的解决方案?
他们在不同的情况下有什么样的性能上的差别?
欢迎大家讨论!
投入重分,希望我和所有未知者能得到帮助!
他们在不同的情况下有什么样的性能上的差别?
欢迎大家讨论!
投入重分,希望我和所有未知者能得到帮助!
解决方案 »
- 创建DLL时遇到两个问题~ 静态数据成员string与向量vector的警告。
- 谁有OPENGL用高度图生成的地图植平面树的代码,
- 关于椭圆拖动刷新问题
- 多文档程序,如何屏蔽一开始运行自动打开的子窗口?
- 哪一个函数可以通过树控件中树结点的文本值,得到结点的句柄?
- VC MFC中怎么样创建自定义消息来接受WASAsyncSelect定义下的消息。
- 我是XML的初学者,请大虾帮助解决一个问题
- 如何在VC中使用类似VB中CreateObject的功能通过类名创建对象的实例
- 请高手指点
- 怎样修改注册表?
- !急需计算机等级考试2004年四级试题(笔试、上机),50分!
- 语言栏怪事?任务栏上显示n多个语言栏,紧急求助!!!
不过如果要用WSA系列的,那就必须全部使用WSA系列的函数,尽量别混着用。
http://blog.blogchina.com/article_99373.511644.html
性能上应该没太大差距。
从工能上 考虑WSAEventSelect好用些。
如果要用WSA系列的,那就必须全部使用WSA系列的函数,尽量别混着用。我看MSDN在说明WSAEventSelect的过程中,遇到接受发送数据都是用的recv和send。
能说说你的“尽量别混着用”的理由吗?main90(小马) :
完成端口应该用在响应大规模连接请求上吧
或者说,我的客户端SOCKET的实现没有必要使用完成端口技术吧。
在大多数时候,socket是可写的,那么,WSAWaitForMultipleEvents(...,FD_WRITE)
是不是总是立刻返回啊?那CPU占用率就要100%了吧。如果上面的猜想成立,我们在程序中是不是要加另外的一些控制?比如再等待由我们
控制的另外一个事件对象。其实,试试就行了,可惜我现在没有时间建立程序框架。
在WSAEventSelect与select之间,建议使用WSAEventSelect.