問題タブ [epoll]
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.
c++ - epollはudpパケットを受信できますか?
私はネットワークプログラミングの初心者で、epollについて聞いたことがあります。いくつかのチュートリアルを読んだところ、epollの機能と、これを実装する方法についての基本的なアイデアが得られました。
問題は、クライアントがudp接続を使用する場合でも、epollを使用できるかどうかです。私が読んだすべてのチュートリアルは、TCP接続を使用していました。
また、epollを使用したマルチスレッドベースのサーバー実装を説明する優れたチュートリアルまたはサンプルコードはありますか?私がオンラインから入手したこれらのチュートリアルは、シングルスレッドで単純なエコーサーバーを作成する方法のみを示しました。
前もって感謝します。
c++ - epollの問題を読む
これはwhileループで、このコードは機能しています。問題は、バッファサイズを減らして、バッファサイズよりも大きなデータを送信した場合、データを個別に受信することです。たとえば、170バイト(100バイトのバッファ)を送信すると、最初の100バイトが読み取られ、次に70バイトが読み取られます。これを処理するための最良の方法は何ですか?複数のユーザーがこのようなデータを送信する場合、それらの分離されたパケットを連結するにはどうすればよいですか?前もって感謝します..
epoll - epoll UDPに関する良い例やチュートリアルはありますか?
私はepollを使用してLinuxサーバーで作業していて、ほぼ完成しました。そして、クライアントがudpを使用してパケットを送信することに気づきました:(
epolludpを使用した優れたチュートリアルや例を教えてください。
前もって感謝します。
c - N 個のソケットがリッスンしているソケットに接続されている場合、epoll_wait() は何回プロセスに通知しますか?
成功すると、epoll_wait(2) は、要求された I/O の準備ができているファイル記述子の数を返します。要求されたタイムアウト ミリ秒の間にファイル記述子が準備できなかった場合はゼロを返します。エラーが発生すると、epoll_wait(2) は -1 を返し、errno が適切に設定されます。
epoll が ET によってトリガーされると仮定すると、epoll_wait
N 個の接続されたソケットに対して N 回または 1 回だけプロセスに通知しますか?
c - epoll による listen ソケットの処理
以下はすべてman epoll
ページからのものです。
関数 do_use_fd() は、read(2) または write(2) によって EAGAIN が返されるまで、新しい準備完了ファイル記述子を使用します。
ET トリガーのコード例:
したがって、read/write
操作については、 a が受信されるまでループする必要がありEAGAIN
ますが、なぜそうでないのaccept
ですか?
IMO 上記のコードは、複数のクライアント ソケットが受け入れられるのを待っている場合、いくつかの要求を見逃します。1 つのクライアント ソケットしか受け入れないため、EAGAIN
受信するまでループでラップする必要もあります。
それとも、私が見逃しているものがありますか?
c++ - epoll 例外ハンドル
私はepollを使用してネットワークプログラミングに取り組んでいます。サーバーがクライアントが送信したすべてのデータを受信しなかったという状況を考えていました。たとえば、クライアントが 100 バイトを送信し、サーバーが 94 バイトしか受信しなかったとします。このケースをどのように処理しますか?
前もって感謝します..
epoll - ユーザーの切断を検出する epoll の最良の方法
私はepollを使用してネットワークプログラミングに取り組んでいます。ユーザーの切断を検出する最良の方法を考えていました。現在、タイムアウト付きの select を使用して、受信バッファーに信号があり、一定時間信号がないかどうかを確認してから、ソケット接続を閉じます。
selectを使用する代わりに、epollに適したものが他にあると思います。
前もって感謝します..
networking - クライアント接続がまだ生きていることを確認するにはどうすればよいですか
私はepollを使ったネットワークプログラミングに取り組んでいます。私は接続リストを持っており、すべてのクライアントをリストに入れています。ユーザーが正常に切断された場合、0を読み取ることでユーザーの切断を検出できます。ただし、ユーザーが予期せず切断された場合は、ユーザーにデータを送信しようとするまで、これを知る方法はありません。
epollがこれを処理する良い方法を提供するとは思わないので、私はこれを自分で処理する必要があると思います。この問題に関連する例や参考資料のようなものを提供していただければ幸いです。
python - Python epoll では、errno.EWOULDBLOCK、errno.EAGAIN を回避できますか?
Python で epoll ラッパーを作成しました。正常に動作しますが、最近、パフォーマンスが大きなパッケージの送信には理想的ではないことがわかりました。コードを調べてみると、実際には多くのエラーがあることがわかりました
ドキュメントに記載されているように、以前はサイレントにしていたため、送信機能は次のように行われました。
私はそれをグーグルで検索し、一時的にネットワークバッファが不足したことが原因であると言います.では、例外フェーズに進む代わりに、このエラーを手動で効率的に検出するにはどうすればよいですか?
例外の発生/処理に時間がかかるためです。
linux - EPOLLHUP の使用方法
デッド ピアの処理に EPOLLHUP を使用したサンプル コードを教えてください。ユーザーの切断を検出する信号であることは知っていますが、これをコードでどのように使用できるかわかりません..よろしくお願いします..