.NET非同期ソケットにはさまざまなメモリ管理の問題があります。どのようにSystem.Net.Sockets.Send()のバッファとしてbyte []参照を渡すかRecieve()
ありますが、リンクの一握りは、この1をスパイダリングすると、すべてのあなたにそれらを取得します:基本的に http://codebetter.com/blogs/gregyoung/archive/2007/06/18/async-sockets-and-buffer-management.aspx
ソケットが非同期で送信しているとき/受ける多くの小さなバイト[]さん
送受信バイト[]はメモリ
に固定され、断片化します。バッファマネージャを作成する目的のためにSO
: 私はにより、ソケットの非同期.BeginSend()メソッドに[]このバイトを送ってくださいどのように管理するバッファ(バイト[])
byte[] managedBuffer = new byte[1024];
// do stuff with managedBuffer;
を持っています参照?
// I don't want to pass the VALUE to the method, but a reference
// to managedBuffer;
System.Net.Sockets.Socket.BeginSend(managedBuffer...(other params));
あなたが参照しているメモリ管理の問題へのリンクを投稿できますか? –
@Jon B - 完了 - お楽しみください - それは私のために新しい世界を開いた! – divinci
@divinci - 面白い読み込み。彼は通常の配列の代わりにArraySegmentを推薦しているようだ。 –