- 締切済み
setsockoptのタイムアウト確認について
はじめまして。dekatyoと申します。 borland c++ 4.0にて開発をしております。 タイトルの通り、setsockoptにて指定した、タイムアウトの確認方法を探しています。 一通り探してみたのですが、何分私も、初めて担当した言語で戸惑っております。 恐れ入りますが、ご回答をお願い致します。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- dennou2000
- ベストアンサー率62% (18/29)
回答No.2
「タイムアウト発生をどうやって検知するか」という質問だと捉えましたがよろしいでしょうか? BolandC++が、BSDソケットの仕様に準拠しているとしての話ですが・・・ タイムアウトを気にするということはブロッキングI/Oモードです。 send/recvは、正常にデータ送信/データ受信ができない限り、setsocketoptで設定したタイム アウト値まで、リターンしません。 そして、タイムアウトした時はエラーとして-1を返却します。 その時のグローバル変数errnoに、EAGAINまたはEWOULDBLOCK(sendのみ)が設定 されます。これがタイムアウトした事を示します。 (もしかすると、Winsockの仕様を取り込んでいるとGetLastErrorとかでエラー値を取得 する形かも知れません。)
- sonetea
- ベストアンサー率26% (9/34)
回答No.1
送受信のタイムアウトの話ですよね。 受信側でrecv()を呼び出し、送信側で何も送信しなければ良いのではないでしょうか?
質問者
お礼
ご返答ありがとうございます。 参考にし、調査してみたいと思います。
お礼
とても参考になりました。 ありがとうございました。