このようなことが以前に行われたかどうかを知りたい:
私は最近、C でネットワーク ライブラリの作業を開始しました。ライブラリはソケットのセットを維持し、それぞれが 2 つの FIFO バイト ストリーム (入力と出力) に関連付けられています。
ライブラリを使用する開発者は、認識関数とハンドラー関数で構成されるいくつかのコールバックを登録する必要があります。新しいデータがソケット (つまり、入力ストリーム) に到着すると、すべてのレコグナイザーが呼び出されます。レコグナイザーの 1 つがデータの一致する部分を見つけると、関連するハンドラーが呼び出され、データを消費し、場合によってはソケットの出力ストリームに新しいデータをキューに入れ、後で送信するようにスケジュールします。
ライブラリの使用方法を明確にするための例を次に示します。
// create client socket
client = nc_create(NC_CLIENT);
// register some callback functions that you'll have to supply yourself
nc_register_callback(client, &is_login, &on_login);
nc_register_callback(client, &is_password, &on_password);
// connect to server
nc_dial(client, "www.google.com", "23");
// start main loop (we might as well have more than one connection here)
nc_talk();
私にとって、これは C で汎用ネットワーク ライブラリを作成する最も明白な方法です。Google を使用していくつかの調査を行いましたが、C で作成された同様のものを見つけることができませんでした。このアプローチを実装する最初のもの。
このようなデータ駆動型の汎用 C ネットワーク ライブラリは他にありますか?
それらを使用しますか?