0

私は現在、Linux上のaioを調べて、Webサーバーの実装に使用しています。私がすでに発見したように、aioの使用法を詳細にカバーするリソースはそれほど多くありません。

問題は、aioを使用するシングルスレッドアプリケーションでクライアント接続を受け入れる従来の方法は何ですか?(可能な限り最小限のブロッキングで)

理想的には、接続が確立され、ハンドラー内でaio_readが一度に呼び出されるという通知(私の場合はコールバック関数呼び出し)を送信するaio_accept操作を確認できます。しかし、そのような呼び出しはありません:(

ありがとう!

4

1 に答える 1

1

aioはpre-acceptソケットでは機能しないと思います。

おそらくそれらを選択するか、準備ができたらSIGIOを入手することをお勧めします。

[編集]

具体的には、マニュアルページには次のように記載されています。「ファイルを開くデバイスはシーク操作を許可する必要があります。つまり、lseek呼び出しでエラーが発生する端末などのデバイスでAIO操作を使用することはできません。」

ソケットはシーク操作を許可しないため、受け入れ後のソケットでさえ運が悪いように見えます。

于 2011-05-25T19:45:18.587 に答える