私は選択ベースのサーバーを持っています。ソケットはブロッキング モードですが、select() 関数では 250 ミリ秒を使用しています。タイムアウト。
基本的に、私のサーバーは 1 つのクライアントのみを受け入れ、そのクライアントにデータを送信します。サーバーからクライアントにデータを送信するだけで、何週間も問題なく動作しています。
しかし、select() 行で 3 ~ 4 時間後にクライアントがサーバーにデータを送信すると、スタック オーバーフロー例外 (0xC00000FD) が発生することに気付きました。Select()のMSDNページを何十回も赤くしましたが、これに関連する言及はありません。私は本当に立ち往生しています。どんな助けでも大歓迎です。
ちなみに、ネットで見つけた例。
http://tangentsoft.net/wskfaq/examples/basics/select-server.cpp
ここでは、クライアント接続を受け入れた後、非ブロッキング モードに設定しています。そして、次のようにコメントされています。
// Mark the socket as non-blocking, for safety.
上記の「安全」とは何を意味しますか?これは私の問題だと思いますか?私の実装では、接続されているものはブロッキングモードになっているためですか?
前もって感謝します