Я читал о различных проблемах управления памятью, которые имеют асинхронные сокеты .NET.
Есть только несколько ссылок, но, если вы перейдете по этой ссылке, вы получите их все:
http://codebetter.com/blogs/gregyoung/archive/2007/06/18/async-sockets-and-buffer-management.aspx
* В основном 1007 *
когда сокет асинхронно отправляет / получает много маленьких байтов []
отправленные / полученные байты [] закреплены в памяти
приводит к фрагментации.
SO в целях создания диспетчера буфера:
У меня есть управляемый буфер (byte [])
byte[] managedBuffer = new byte[1024];
// do stuff with managedBuffer;
как отправить этот байт [] в асинхронный метод сокета .BeginSend () по ссылке?
// I don't want to pass the VALUE to the method, but a reference
// to managedBuffer;
System.Net.Sockets.Socket.BeginSend(managedBuffer...(other params));