問題:My Completionport Serverは、さまざまなクライアントから不明なサイズのデータを受け取ります。問題は、バッファオーバーランを回避する方法がわかりません/バッファにデータがオーバーフィルされないようにする方法です。WSARecv、Completionportモデル、バッファを管理してオーバーランを回避する方法は?
Quesitons: 1)私がWSARecv経由で受信呼び出しを行う場合、workerthreadはコールバック関数のように機能しますか?つまり、受信コールが完了したときにのみ受信コールを掘り起こすのですか、受信が起きたときに受信コールを掘り起こすのでしょうか? lpNumberOfBytes(GetQueuedCompletionStatusから)変数に、現在までに受信したバイト数または受信したバイト数の合計が含まれていますか?
2)オーバーランを回避するには、動的に割り当てられたバッファ構造を考えましたが、再度、どのくらいの大きさのパッケージが得られるのかを確認するにはどうすればよいですか?
編集:私はこれを尋ねるのは嫌ですが、バッファを管理してオーバーランを避けるための「単純な」方法はありますか?同期は少なくとも私に今までに限界を呼んでいる