dri*_*vel 5 c sockets multithreading
我需要编写一个使用线程和套接字的程序.在不同平台(Linux,Windows,Mac)上执行此操作的最佳方法是什么.
我知道POSIX,但Win上没有POSIX.
是否有任何库以独立于平台的方式处理?
如果你真的想要C(不是C++),我建议在非Windows平台上使用标准POSIX线程,并在Windows上使用pthreads-win32.它支持32位和64位,MSVC和MinGW.它的当前版本(2.9.1)仅在一个月前发布,因此该项目得到了积极维护.在github上还有一个fork,在MSVC2010项目中有一些修复.
如果C++也是一个选项,我会选择boost,因为它是标准c ++发展的地方(std::threadc ++ 11中的设计是从中演变而来的boost::thread等等)
对于你的问题的网络部分,boost::asio如果C++对你来说是最好的选择,否则在C中看不到任何可比的东西.特别是在Windows上boost::asio支持I/O Completion Ports (IOCP),这对性能至关重要.boost::asio需要一些时间来学习,但在我个人看来,花在阅读文档(这很棒)和使用示例的每一分钟都值得.