お世話になっております。
Windows2012R2+VisualStudio2013+VC(MFC)を使用して
DLL(ソケットサーバー機能)を開発しております。
その中で使用しているWinsock2.0のrecv()関数が、ERROR_IO_PENDING(997)を稀に返す時があり
対応に苦心しております。
このエラーはブロッキングモードでは発生しないと考えておりましたが、このエラーについて
考えられる原因をご存知の方はいらっしゃいますでしょうか?
具体的には、DLLの公開している関数(OpenSocket()、仮名)で接続待ちスレッド(ListenThread)を起動し、
ListenThread内でbind、listen、acceptを行い、接続が確立されたら受信スレッド(ServerThread)を起動します。
recv()はそのServerThreadの中でポーリングして待ち受けています。(recvのタイムアウトは100ms)
以上、よろしくお願いいたします。