2012-02-08 8 views
14

私は、LinuxとWindowsの両方でソケット通信(listen、accept、connect、recv、send、disconnect)を探しています。私のプロジェクトはC言語になっているので、誰かがC++ライブラリをCプロジェクトに統合する方法を考えることができない限り、ライブラリはC言語にもなければなりません。Cのクロスプラットフォームソケットライブラリ(WindowsとLinux)について知っていますか?

最終的に、私はライブラリにipv6サポートと非ブロッキングモードを持たせたいと思いますが、これらは必須ではありません。

ライブラリ/クロスプラットフォームのサンプルコードを知っている人はいますか?たとえ大きなコードスニペットでも役に立ちます。これまで私が見つけたいくつかのソケットライブラリはC++にありました。

答えて

9

オフの手、私は4つのライブラリを考えることができます:GLib framework抽象ソケットの使用状況から

+0

大変ありがとうございます。現時点では、私はlibuvを見ています。サイズ/シンプルさと効率のバランスが良いようです。好奇心の中で、その結果をもたらした検索用語は何ですか?あなたはすでにそれを知っていましたか? –

+1

@ 64bit_twitchylquid:最初にGLibを見たのは覚えていませんが、私の考えではC言語の標準ライブラリの場所を占めています。プラットフォーム抽象化ライブラリを探すときにAPRとNSPRを見つけました.Lustプログラミング言語で使われているのでlibuvを知っています。実際には、libuvを除いてこれらのすべてがhttp://www.shlomifish.org/open-source/portability-libs/にリストされています。* Cクロスプラットフォーム抽象化ライブラリのためのGoogle検索の最初の結果です。* – Christoph

3

私はWindowsとLinuxの両方を遵守しているライブラリは知らないが、winsockはLinuxソケットプログラミングに似ていると思う。

特に、それは 'select()'と他の関数を提供します。私はあなたが型キャスティングの警告を避けるために非常に薄い#ifdefラッパーが必要になると思います。

See here the winsock page for select

-3

The Boost libraryこれらの機能が含まれています。

+2

彼はCを探していますlibrary –

-2

Ptlibは、ソケットでうまく動作するクロスプラットフォームのC++コードを提供します。 www.opalvoip.org

スレッドをうまく使っています。いくつかのMacとBSDのサポート。積極的な開発と保守の下で。 MPL Ekigaのコアライブラリ - SIPを実行する優先デスクトップアプリケーション& H.323

Windows用 - MSVCでコンパイルされます。 Linuxの場合、それはなど

OKを作るのgccのautoconfでコンパイル、それはC++ですが、あなたはそれで作業することができます... はptlib /サンプル内のソースを持っている - そこptlibを使用しての多くの例があります。

+0

彼は特にCライブラリを求めていました。 – Chase

2

plibsysライブラリは、クロスプラットフォームとポータブルで軽量で、ソケットのIPv4とIPv6のサポートだけでなく、マルチスレッドのような他の多くの有用な機能を提供します。ノンブロッキングモードのソケットで動作します(ただし、ブロッキングモードに切り替えることもできます)。テストコードの例については、かなり良い文書を持っています。

関連する問題