私の問題:私のCompletionportサーバーは、さまざまなクライアントから不明なサイズのデータを受信します。問題は、バッファオーバーランを回避する方法/(受信)バッファがデータで「いっぱいになる」のを回避する方法がわからないということです。
ここでQuesitonsに:1)WSARecvを介して受信呼び出しを行う場合、workerthreadはコールバック関数のように機能しますか?つまり、受信コールが完了したときにのみそれを掘り起こしますか、それとも受信が行われているときにもそれを掘り起こしますか?lpNumberOfBytes(GetQueuedCompletionStatusから)変数には、これまでに受信したバイト数または受信した合計バイト数が含まれていますか?
2)オーバーランを回避する方法、動的に割り当てられたバッファー構造を考えましたが、パッケージがどれだけ大きくなるかを知るにはどうすればよいですか?
編集:私はこれを尋ねるのは嫌いですが、バッファを管理し、オーバーランを回避するための「簡単な」方法はありますか?少なくとも今のところ、同期は私には立ち入り禁止に聞こえます