- 1 名前:デフォルトの名無しさん mailto:sage [2010/12/25(土) 22:46:56 ]
- 主にソケットに関しての質疑応答スレッドです。
Programming UNIX Socket FAQ (日本語訳) www.kt.rim.or.jp/~ksk/sock-faq/indexj.html Winsock Programmer's FAQ (日本語訳) www.kt.rim.or.jp/~ksk/wskfaq-ja/ 関連リンクは>>2-10辺り 足りなかったら適当に付け足してね 前スレ ネットワークプログラミング相談室 Port26 hibari.2ch.net/test/read.cgi/tech/1269343909/ 関連スレ ネットワークプログラミング雑談 hibari.2ch.net/test/read.cgi/tech/1235800707/ Java ネットワークプログラミング 【教えて!】 hibari.2ch.net/test/read.cgi/tech/1086238859/
- 12 名前:デフォルトの名無しさん mailto:sage [2010/12/28(火) 13:40:55 ]
- WSAEWOULDBLOCK は、
本来はブロッキングする処理だけどノンブロッキングモードだからブロックせずに制御を返したよ(もちろんまだ完了してないよ) っていう意味だから、あなたの望む結果じゃないのでしょうか? それともノンブロッキングモードを誤解しているのでしょうか? 単に WSAAsyncSelect の FD_CONNECT の存在に気づいてないだけでしょうか?
- 13 名前:デフォルトの名無しさん mailto:sage [2010/12/28(火) 13:49:00 ]
- >>11 これは非同期処理においては当たり前のことなのでしょうか?
yes
- 14 名前:デフォルトの名無しさん mailto:sage [2010/12/28(火) 13:52:43 ]
- >>11
状況が分からないが connect関数はコール後すぐに制御を返すが、実際にはまだ接続が完了していない。 その状態であることを知らせるのがWSAEWOULDBLOCKであり、 接続が完了したことを通知するのがFD_CONNECT。 connect関数コール後から接続完了(CONNECT)まで何も処理することがないなら一見するとブロッキングモードと同等になる。 しかし、それらの処理がメインスレッド上で行われている場合、ブロッキングするconnect関数コールは、他のWindowsメッセージの処理すらされなくなる。
|

|