Esempio n. 1
0
        /// <summary>
        /// Отправка фрейма данных
        /// </summary>
        /// <param name="command"></param>
        /// <param name="messageBody"></param>
        protected void SendFrame(TrackerCommand command, string messageBody)
        {
            TrackerFrame frame = null;

            try
            {
                frame = CreateFrame(command, messageBody);
                Logger.InfoFormat("Отправка фрейма {0}", frame.ToString());
                TcpClient.Client.Send(frame.BlockData);
            }
            catch (Exception ex)
            {
                Logger.Error(String.Format("Ошибка при отправке фрейма {0}", frame == null ? "(фрейм не создан)" : frame.ToString()), ex);
            }
        }
Esempio n. 2
0
        /// <summary>
        /// Получение фрейма
        /// </summary>
        /// <param name="frame">фрейм</param>
        protected void OnReceiveFrame(TrackerFrame frame)
        {
            Logger.DebugFormat("Получен фрейм {0}, команда {1}", frame.ToString(), frame.Command.CommandType.Description);

            // Проверка
            CheckHandshake(frame);

            // Если обработчик ответа не указан то выходим
            if (String.IsNullOrEmpty(frame.Command.CommandType.AnswerHandlerFunction))
            {
                return;
            }

            // Имем обработчик
            var handler = GetType().GetMethod(frame.Command.CommandType.AnswerHandlerFunction);

            if (handler == null)
            {
                throw new Exception(String.Format("Функция обработки ответа не найдена: {0}",
                                                  frame.Command.CommandType.AnswerHandlerFunction));
            }
            // Вызов обработчика
            handler.Invoke(this, new object[] { frame });
        }