gpt4 book ai didi

c - 以独立于平台的方式在 C 语言中使用线程和套接字

转载 作者:太空狗 更新时间:2023-10-29 14:57:48 24 4
gpt4 key购买 nike

我需要编写一个使用线程和套接字的程序。针对不同平台(Linux、Windows、Mac)执行此操作的最佳方法是什么。

我知道 POSIX,但是 Win 上没有 POSIX。

是否有任何库以独立于平台的方式处理它?<​​/p>

最佳答案

如果你真的想要 C(不是 C++),我建议在非 Windows 平台上使用标准 POSIX 线程,并使用 pthreads-win32在 Windows 上。它支持 32 位和 64 位,MSVC 和 MinGW。它的当前版本 (2.9.1) 是在一个月前发布的,因此该项目正在积极维护中。还有一个 fork on github在 MSVC2010 项目中进行了一些修复。

如果 C++ 也是一个选项,我会选择 boost,因为它是标准 c++ 发展的地方(c++11 中 std::thread 的设计是 的演变boost::thread 等)

对于你问题的网络部分,如果 C++ 适合你,boost::asio 是最佳选择,否则在 C 中没有看到任何可比的东西。特别是,boost::asio 支持 Windows 上的 I/O 完成端口 (IOCP),这对性能至关重要。 boost::asio 需要一些时间来学习,但在我个人看来,花每一分钟阅读文档(很棒)和处理示例是值得的。

关于c - 以独立于平台的方式在 C 语言中使用线程和套接字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11177175/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com