0

POCOライブラリにソケット用のとても素敵なライブラリを見ました。これは、LinuxシステムとWindowsシステムの両方で機能する「クラシック」アプローチ、主にSELECTベースのアプローチを使用します。

高性能プロキシ/Socksサーバーで使用したいので、非同期IO(完了ポート?)を使用するWindowsに固有のものがあるかどうかを知りたいです。

4

3 に答える 3

1

おそらくBoost::ASIOはあなたが探しているものですか?

于 2012-01-23T14:05:39.050 に答える
0

オープンソースのBadVPNソフトウェアプロジェクトの一環として、C言語用のイベント駆動型(シングルスレッド)のクロスプラットフォームネットワークプログラミングフレームワークを開発しました。Linuxではepollを使用し、WindowsではIOCPを使用します。

いくつかの重要な部分:

フローベースプログラミングを多用します。たとえば、TCPの抽象化であるBConnectionは、StreamPassInterfaceおよびStreamRecvInterface汎用ストリームI/Oインターフェイスを使用します。これは非常に便利です。たとえば、アプリケーションにSSLサポートを追加する必要がある場合、 BConnectionの上にBSSLConnectionオブジェクトをスローする以外に必要なことはほとんどありません。

フレームワークのほとんどは十分に文書化されていますが、その使用方法に関するガイドはまだ提供していません。この基本的なプログラムを出発点として使用できます。学習を目的としたものではありませんが、tun2socksプログラム、特に付随する小さなudpgwプログラムが役立つ場合があります。

SOCKSについて言及されたので、私のフレームワークでは、tun2socksで使用される非常に単純なSOCKS5クライアント(認証などなし)も実装しました。

于 2012-01-23T14:15:12.420 に答える
0

ネットワークゲーム用に作成したCライブラリを提案できます。このライブラリは、大量の同時短いTCP接続を対象としていました。非同期epoll、kqueues、IOCPまたは同期スレッドを使用します。インターフェイスは非常にシンプルで、node.jsが機能する方法でコールバックを介して抽象化されます。エコーサーバーとして、1秒あたり60kのリクエストを処理できます。https://github.com/freedib/gasioを参照してください

于 2013-02-14T14:34:21.413 に答える