在C中以独立于平台的方式使用线程和套接字
我需要写一个使用线程和套接字的程序。对于不同的平台(Linux、Windows、Mac),最好的方法是什么 我知道POSIX,但没有POSIX的赢家在C中以独立于平台的方式使用线程和套接字,c,multithreading,sockets,C,Multithreading,Sockets,我需要写一个使用线程和套接字的程序。对于不同的平台(Linux、Windows、Mac),最好的方法是什么 我知道POSIX,但没有POSIX的赢家 有没有以平台无关的方式处理的库?您可以尝试使用(C++)作为包装器,它有跨平台的线程库和网络库;除非你的项目必须是100% C.< /P> < P>你可以使用 Booost >(C++):-对于一个非同步输入输出,对于平台无关线程< P>有一个C++类,叫做CXProject上的XP线程。 您需要将ifdef从mach更改为ifndef win3
有没有以平台无关的方式处理的库?您可以尝试使用(C++)作为包装器,它有跨平台的线程库和网络库;除非你的项目必须是100% C.< /P> < P>你可以使用<强> Booost >(C++):-对于一个非同步输入输出,对于平台无关线程< P>有一个C++类,叫做CXProject上的XP线程。
您需要将ifdef从mach更改为ifndef win32/64 我将其用于我的OpenArena aimbot,教程包括修改的XP Threads类: 你所需要做的就是去“分类”它以便在C中使用 您可以在这里看到最终结果,顺便说一句:)
对于Windows,您可以使用Win32的CreateThread API:如果您确实需要C(而不是C++),我建议在非Windows平台上使用标准POSIX线程,并在Windows上使用。它支持32位和64位,包括MSVC和MinGW。它的当前版本(2.9.1)仅在一个月前发布,因此项目得到了积极维护。在MSVC2010项目中也有一些修复程序 <> P>如果C++也是一个选项,我会选择Boost,因为它是标准C++的发展方向(C++中的代码> STD::线程< /代码>的设计是从代码> Boo::线程< /代码>等的演变)
<对于您的问题的网络部分,<代码> Boo::ASIO < /C>是C++的最佳选择,否则在C中没有任何可比的,特别是
对于套接字,我的印象是BSD套接字接口在Windows中也相对直接地提供,但是我没有在那个平台上编程的经验。他说C,而不是C++。否则,boost就可以了。