問題タブ [libevent]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
erlang - コメットの最善のアプローチは? (ノンブロッキング IO vs Erlang)
おそらく、質問に答えるのはそれほど簡単ではありません...しかし、あなたの意見は何ですか? ノンブロッキング アプローチ (libevent など) を使用するか、erlang の軽量プロセスを使用して、次のことを行う必要があります。
- 一定量の RAM で可能な限り多くの接続を実現する
- 一定量の CPU で可能な限り多くのスループットを達成する
背景は、パブ/サブサーバーのコーディングを計画していて、どのアプローチを使用すべきかを判断できないということです。
qt - libevent アプリ用の Qt ベースの GUI の作成
私は現在、C/C++ ネットワーク プログラミングに libevent を多用しています。また、select、poll、epoll、kqueues などを使用する必要があるかどうかを心配することなく、イベント ベースのアプリを簡単に作成できる点が気に入っています。作成したアプリはテキストです。 -のみ、そして現在、Qt/QML を検討して、既存のネットワーク アプリの GUI を作成しています。
libeventとqtの両方が独自のイベントループを実行したいので、それらを1つのアプリケーションに統合する方法がわかりません。それぞれを独自のスレッドで実行することを検討する必要がありますか (あるスレッドで gui を実行し、別のスレッドで libevent-backend を実行する)、または非常に単純なものが不足していますか? :-)
ありがとう、ニーナ
linux - ソケットから読み取られたデータを処理する最も効率的なアプローチは何ですか?
私が書いているストリーミングサーバーにlibevを使用したいと思います。
これがすべてが機能することになっている方法です:
- クライアントがサーバーへのTCPソケット接続を開きます
- サーバーが接続を受信する
- クライアントは希望する画像のリストを送信します
- サーバーはリクエストを読み取ります
- サーバーはすべての画像をループします
- サーバーはNASから画像を読み取ります
- サーバーは画像ファイルのメタデータを処理します
- サーバーは画像データをクライアントに送信します
libev I / Oイベント(内部でepoll)を使用してソケットから読み書きできるサンプルコードを見つけました。しかし、NASからの読み取りと処理の処理方法がわかりません。これには時間がかかる場合があります。そして、これが起こっている間、私はサーバーをブロックしたくありません。
これは別のスレッドで実行し、スレッドに画像データをクライアントに返送させる必要がありますか?
スレッドプールの使用を計画していました。しかし、おそらくlibevはブロックせずに処理ステップをサポートできますか?
任意のアイデアや助けをいただければ幸いです!
epoll - libevent と epoll、どちらが効率的ですか?
これらは、最高のイベント処理ライブラリの 2 つだと思います。
この2つはどちらも利用者が多いのですが、どちらが優れているのでしょうか?
c - libevent2とペアになっているbuffereventsの問題
このマルチスレッドアプリには、スレッドごとにループがあり、スレッドごとに2つのペアのbuffereventがあり、それらとメインスレッドの間でデータを送受信します。
これは理論的には。実際には、bufferevent_pair_new()は正常に戻りますが、使用可能な記述子のない2つのbufferevent構造が作成されるため、それらを使用してbufferevent_getfd()を呼び出すと、両方に対して-1が返されます。
もちろん、以前に他のイベントを追加せずにそれらをイベントループにアタッチしようとすると、スレッドが返され、「イベントのないループ」エラーが発生します。
Torで似たようなものを見ました(スレッド間で通信するためのペアのbufferevents)。私はそれを正しくやっていますか?他に何か必要ですか?
c - libevent とノンブロッキング ソケット
event_set()
libevent を使用してソケットを監視するには、最初に正しいパラメータで呼び出す必要があることを理解してい ます。
libevent のドキュメントには、event
event_set() のパラメーターは EV_READ または EV_WRITE のいずれかであると記載されています。そして、このイベント パラメータが注目すべきイベントであること。
しかし、EV_READ と EV_WRITE が対応するソケット イベントは何ですか? つまり、受信メッセージを監視するのではなく、接続状態の変化を監視するにはどうすればよいでしょうか?
c - bufferevent (libevent 内) がノンブロッキング ソケットに対してどのように機能するかを誰かに説明してもらえますか?
libevent 2.0 のドキュメントは理解しにくいものです。誰でもチュートリアルを教えてもらえますか?
tcp - libevent を使用して TCP サーバーをブロードキャストする
接続されているすべてのクライアントに着信メッセージをブロードキャストする、単純な libevent ベースの TCP サーバーのサンプル コードを探しています。Web では、メッセージをエコー バックする TCP サーバーしか見つかりませんでした。
見つかった場合のエコーの例は、このページの下部にありますhttp://www.wangafu.net/~nickm/libevent-book/Ref8_listener.html
メッセージが接続されているすべてのクライアントにブロードキャストされるように、このサイトで提供されているコードを変更するのはそれほど難しくないと確信していますが、その方法はわかりません。
誰かが私にアドバイスできますか?
編集: はい、ある種のチャット サーバーです。私はこのようにsthを行う必要があると思われます:
しかし、私はこれを機能させることはできません。
c - libeventの接続を制限する
プロセスごとに可能なlibevent-http接続の制限を制御したいと思います。
どうやってやるの ?
ドキュメントに情報が見つかりませんでした。助けてください!
接続数を制限しなかった場合、システムがクラッシュする可能性があると思います。プロジェクトは非常に高負荷です。