0

私はW.リチャードスティーブンスによるUnixネットワークプログラミングを読んでいます。著者は、ブロッキング接続呼び出しが中断された場合、非ブロッキング接続の選択として「select」を使用できると述べています。

私は混乱しています。非ブロッキング接続を呼び出してから新しいsocktfdを選択する必要がある場合、または前のブロッキング接続呼び出しに渡される古いsocketfdを選択する必要がある場合はどうなりますか?

そして、投稿で、SA_RESTARTフラグを使用してシグナルアクションが渡された場合、「接続」は再起動可能であることがわかります。もしそうなら、私はブロッキング接続が中断されたケースを完全に無視できますか?

4

1 に答える 1

0

ブロッキング呼び出しを使用している場合は、エラー コードを確認し、中断した場合は EINTR になるエラー コードに基づいて再試行する必要があります。それ以外の場合は、中断のために返されない select を使用します。タイムアウト、エラー、または読み取り/書き込み信号の場合にのみ選択して戻ります。

于 2013-03-16T04:57:38.257 に答える