クライアントがファイルをサーバーに送信するとき、サーバーがデータをダウンロードして書き込むのに十分な時間を確保するために、次のチャンクを送信する前にスリープ (100) する必要がありますか?
それは完全に不必要に思えますか?
また、チャンクを送信するときに wouldblock エラー (# 10035) が発生するので、成功するまで送信をループするだけです。、 それは大丈夫ですか?
クライアントがファイルをサーバーに送信するとき、サーバーがデータをダウンロードして書き込むのに十分な時間を確保するために、次のチャンクを送信する前にスリープ (100) する必要がありますか?
それは完全に不必要に思えますか?
また、チャンクを送信するときに wouldblock エラー (# 10035) が発生するので、成功するまで送信をループするだけです。、 それは大丈夫ですか?
TCP経由でファイルを送信している場合、すべてが受信されたことを確認するのはプロトコルです。各チャンクの間にスリープを設定することはありません。
willblockエラーは、出力バッファに送信するデータが多すぎるか、送信する速度が速すぎてリモートバッファがいっぱいになることです。受信者がそれを受け取ったが、それを保存してちょうどそれを落とすのに十分なスペースがなかったので、それはそれを再び送るのに問題がないようです。
これがあなたのエラーについての小さな記事です:Winsockエラー10035
私の意見では、スリープ機能を使用して何かが行われるのを待つことは、99% の確率で間違った方法です。プロセスが実行されるのに必要な時間、または期待する時間は決してありません (たとえば、スパイク、その他の i/o の問題などによって中断される可能性があります)。
重要な何かが完全に実行されるようにしたい場合は、セマフォなど、開始/終了時にプロセスをロック/解放する場所について読む必要があります。