随笔分类 -  网络通讯(TCP/UDP)

摘要:Windows,Linux的select函数功能差异感谢主,Windows当年也实现了select函数,这让我们的跨平台大业至少顺畅了一节。但由于Windows渗入骨髓的叛逆心理,他总要和UNIX的实现保持一些差别,让你无可奈何。首先是Windows的select函数的参数接口设计和Linux下有较大差别,这个在我的《设计极其糟糕的select函数》就讨论过,相对而言,在参数设计上,Windows的设计明显好于Linux。这次我们聊聊他们的功能差异。1 无句柄等待触发时的处理的差异最近的新的重构代码,发现在Windows下,程序的CPU很高,测试发现select函数并没有等待,return-1 阅读全文
posted @ 2012-08-12 11:05 fullsail 阅读(5045) 评论(2) 推荐(2)
摘要:设计极其糟糕的select函数相较Windows而言,大部分UNIX API函数设计都比较考究,但也有少数简直就是奇葩,select函数正是这些奇葩中非常灿烂的一朵。我原来一致钟情于ACE,接触的只是reactor,最近由于开始自己设计网络层的类库,被迫和select打了一些交道,被迫和这个函数打了一些交道,结果只能是看着就吐了,吐着吐着就习惯了。UNIX下select这个API由主函数select和几个fd_set辅助函数构成。如下:int select(int nfds, fd_set *readfds, fd_set *writefds,fd_set *exceptfds, struct 阅读全文
posted @ 2011-11-06 22:41 fullsail 阅读(1136) 评论(2) 推荐(0)