知道C中的任何跨平台套接字库(windows和Linux)吗?

我期待在linux和windows中进行套接字通信(监听,接受,连接,接收,发送,断开)。 我的项目是在C中,所以除非有人能想到让我将C ++库集成到C项目中的方法,否则库也必须在C中。

最终,我希望该库具有ipv6支持和非阻塞模式,但是,这些东西并不是必需的。

有谁知道任何库/跨平台示例代码? 即使只是大型代码片段也会有所帮助。 到目前为止,我发现的少数套接字库都是用C ++编写的。

副手,我可以想到四个图书馆:

  • 来自GLib框架的 GLib通道可以抽象套接字使用,但是您需要特定于平台的代码来创建套接字。

  • libuv是node.js的平台抽象层,其中包括套接字和异步IO。

  • Apache Portable Runtime还包含网络例程 。

  • Netscape Portable Runtime也可以进行套接字操作 。

我不知道哪个库兼容Windows和Linux但我认为winsock与Linux套接字编程相似。

特别是它提供了’select()’和其他提到的function。 我想你需要一个非常薄的#ifdef包装器来避免类型转换警告。

请参阅winsock页面以获取选择

plibsys库提供了所有要求的function:跨平台和便携,轻量级,提供套接字IPv4和IPv6支持以及许多其他有用的东西,如multithreading。 在非阻塞模式下使用套接字(尽管您也可以切换到阻塞模式)。 有关测试代码示例的相当好的文档。

检查适用于Windows和Linux的HS套接字C源库

Ptlib提供适用于套接字的跨平台C ++代码。 http://www.opalvoip.org

与线程很好地对应。 一些支持mac和BSD。 积极发展和维护。 Ekiga中的MPL核心库 – SIP和H.323的首选桌面应用程序

对于Windows – 它与MSVC编译。 对于linux,它用gcc autoconf make等编译。

好吧,它是C ++,但是你可以使用它…在ptlib / samples中有一个源 – 有许多使用ptlib的例子。

Boost库包含这些function。