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

时间:2012-02-08 20:54:11

标签: c sockets tcp cross-platform

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

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

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

6 个答案:

答案 0 :(得分:9)

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

答案 1 :(得分:4)

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

答案 2 :(得分:3)

我不知道一个符合Windows和Linux的库,但我认为winsock与Linux套接字编程相似。

特别是它为您提供了选择()'以及提到的其他功能。我想你需要一个非常薄的#ifdef包装来避免类型转换警告。

See here the winsock page for select

答案 3 :(得分:0)

答案 4 :(得分:-2)

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

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

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

好的,它是C ++,但你可以使用它...... 在ptlib / samples中有一个源代码 - 在那里有许多使用ptlib的例子。

答案 5 :(得分:-3)

The Boost library包含这些功能。