private void GetBuffer(ServerEndPoint local, IPEndPoint remote, int length, out ServerAsyncEventArgs e, out int offset)
{
int headerLength = (local.Protocol == ServerProtocol.Tcp) ? TcpFramingHeader.TcpFramingHeaderLength : 0;
e = EventArgsManager.Get();
e.ConnectionId = ServerAsyncEventArgs.AnyConnectionId;
e.LocalEndPoint = local;
e.RemoteEndPoint = remote;
e.Count = headerLength + length;
e.AllocateBuffer();
if (headerLength > 0)
TcpFramingHeader.GetBytes(e.Buffer, e.Offset, TcpFrameType.ControlMessage, length);
offset = e.Offset + headerLength;
}