掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
Winsockを使った非同期的なsend() (ID:53235)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
九条さん。 今までおつきあい頂き本当にありがとうございました。 おかげさまで無事に解決することが出来ました。 > とあるので、FD_WRITE がきたら、WSAEWOULDBLOCK がでるまで send を > 呼んでも問題ないように思います。 よくよく考えたらそうですよね。 先の発言をした後いろいろといじっていて気づいたのですが、FD_WRITEが飛んでくるタイミング上、一度FD_WRITEを無視してしまったり、FD_WRITEメッセージを受けsend()関数を呼んだがWSAEWOULDBLOCKも返らず、送信バッファにまだ空きがある場合、二度とFD_WRITEは飛んでこない事になります。 そもそも、次のFD_WRITEをひたすら待つと言うことが出来ないわけですね。 > なお、上記コードそのままですと WSAEWOULDBLOCK 時にループを抜けずに > データを出力しようとしてしまうので、その点だけ注意してください。 うぁ、ものすごいケアレスミス…… 穴があったら入りたい気分です(^^;; SOCKET_ERRORが返ればすぐにリターンとか言っておきながらちっともそうなってませんね。 ご指摘ありがとうございます。 > WinSock2.0プログラミング > —Window Socket APIによるネットワークプログラミングのすべて > > 値段がはるのと時代が古いのが難点ですが、私の知っている限り > WinSock2 の非同期通信を詳しく扱った唯一の日本語の本です(^^;;; ご紹介いただいた書籍は近いうちにでも、図書館にでも行ってみようと思います。 #この手の本は平気でン千円もしますから…… 今回は本当にありがとうございましたm(_ _)m
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2020 Takeshi Okamoto All Rights Reserved.