掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
WSAAsyncSelectでsendがブロックする事はありますか? (ID:71686)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
>Socketの送信バッファサイズって何処で調べられますか? getsockopt()などですかね。 # SO_SNDBUFとSO_RCVBUFあたり。 >受信側がWSAAsyncSelectで待ってたら、送信側はどれだけデータを送っても、ブロックされることは無いということでしょうか? >(受信側のOSのバッファにいくらでも溜まる様なイメージです。それをFD_READで反応して読み込んでいく。合ってますか? いくらでも…というワケではないかと。 FD_READで受信バッファから取り出していれば、それなりに行けるとは思いますが。 ノンブロッキングでのsend()の場合、ブロックされる(送信完了(送信バッファに書き込み完了)まで戻ってこない)のではなく、WSAEWOULDBLOCKが返却される…かと。 ブロッキングモードの場合だと、完了するまで処理が戻ってこない…と思われますが。 # 送信バッファよりデータの量が多ければ、順次送信されて空いたバッファに書き込み続けて指定サイズ分書き込むまで戻ってこない…かと。 なお、実際に試したわけではありませんので実装前にテストはして下さい。 # ちょっと無責任…ですが、試している時間がありませんので…。
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2020 Takeshi Okamoto All Rights Reserved.