-4

クライアント サーバー アプリケーションがあります。クライアントはサーバーにコマンドを送信し、UDP ソケット チャネルでデータを受信します。
ソケット ファイルが異なる ID で作成されるたびに。
スクリプトを使用してコマンドを 10000 回実行すると、EBADF. 私が疑っている問題は、close()がソケット記述子をすぐに閉じないことです。SO_LINGER オプションについて読みましたが、TCP ソケットで機能すると思います。

close()ソケット記述子を確実に閉じる方法はありますか。

ありがとう

4

1 に答える 1

3

ここでの実際の問題は、おそらく最初にソケットを作成した結果をチェックしていないか、ソケットを閉じてから再利用しているか、ハンドル値を破損しているため、後で EBADF に遭遇することです。EBADF は、以前のプログラミング エラーの結果です。閉め忘れではありません。実際のエラーが何であるかを調べます。推測しないでください。

于 2013-05-21T08:54:22.067 に答える