0

私はマルチスレッドサーバーを構築しており、各スレッドには単一の epoll fd があり、着信 tcp 接続を管理しています。スレッド間通信には、既存のスレッドごとの epoll を活用する目的で UNIX ドメイン ソケットを使用しました。

しかし、UNIX ドメイン ソケットも追加されている場合、Epoll はネットワーク ソケット イベントを返さないようです。

私の質問は、1 つの Epoll インスタンスを使用して、tcp ソケットと unix ドメイン ソケットの両方でイベントを追跡できるかということです。これは予想される動作ですか?私はそう示唆する文献に出くわしませんでした。それとも、これら 2 つの異なるタイプのソケットを追跡するために別の Epoll インスタンスが必要ですか?

4

1 に答える 1

1

epoll、poll、selectは、複数のファイル記述子を監視するように設計されています。いつでもファイル/ソケット記述子の1つのインスタンスのみを監視することに制限されません。

1つのEpollインスタンスを使用して、tcpソケットとunixドメインソケットの両方でイベントを追跡できますか?はい、epollの使用に特別な制限はありません。

Linux上のEpollに関するいくつかのガイドをお勧めしますか?でサンプルepollプログラムを見てください。

于 2012-06-09T13:10:54.817 に答える