废话不多说,看下面的例子,比较比较。
方式一、目前大部分初学者使用方式。
fd1 = socket
event1 = newEvent
wsaeventselect(fd1, event1, xxxx)
fd2 = socket
event2 = newEvent
wsaeventselect(fd2, event2, xxxx)
for ( ; ; ) {
index = waitformultiobjects(event1, event2)
process event for index.
}
方式二。
w_event = newEvent;
fd1 = socket
wsaeventselect(fd1, w_event, xxxx)
fd2 = socket
wsaeventselect(fd1, w_event, xxxx)
waitforsingleobject(w_event)
for (fd int {fd1, fd2} )
{
if (WSAEnumEvents(fd)) {
do some thing.
}
}
简单的说,第二种比第一种的好处是, 允许使用超过 64 的socket句柄. 而不需要作复杂的手段。且跟传统的 select 没有太大的区别,性能也没啥提升。
阅读(4415) | 评论(0) | 转发(0) |