// Выдача сообщения клиенту public static bool Dequeue(out SSHConnectionCommandBuffer LData) { lock (FLocker) { if (FQueue.Count > 0) { LData = (SSHConnectionCommandBuffer)FQueue.Dequeue(); return(true); } else { LData = null; return(false); } } }
// Прием сообщения с сервера private static void OnReceive(byte[] ABuffer, int ABufferSize) { // Прочитаем код команды int Command = BitConverter.ToInt32(ABuffer, 0); // Создадим сообщение SSHConnectionCommandBuffer LData = new SSHConnectionCommandBuffer { Command = Command, Buffer = new MemoryStream() }; LData.Buffer.Write(ABuffer, 0, ABufferSize); LData.Buffer.Position = sizeof(int); // Добавим сообщение в очередь lock (FLocker) { FQueue.Enqueue(LData); } }