/// <summary>
        /// Получения сообщения по TCP
        /// </summary>
        /// <returns>Текст сообщения</returns>
        public string GetMessage()
        {
            string message = "";

            try
            {
                listener.Start();
                TcpClient client;
                do
                {
                    client = listener.AcceptTcpClient();
                }while (!client.Connected);
                // принимаем входящее сообщение
                // блокирует текущий поток исполнения до получения сообщения. может быть остановлен только извне
                if (client != null)
                {
                    message = Receive(client);
                    client.Close();
                }
                listener.Stop();
            }
            catch (Exception)
            {
                TCPExceptionOccured?.Invoke(this, new ExceptionArgs("Socket error at port " + endpoint.Port, "Accepting message error"));
            }
            return(message);
        }
Пример #2
0
 /// <summary>
 /// Отправка сообщения по TCP
 /// </summary>
 /// <param name="message">Текст сообщения. В рамках данного приложения - команда</param>
 public void SendMessage(string message)
 {
     try
     {
         Connect();
         Send(message);
         Disconnect();
     }
     catch (Exception e)
     {
         // Срабатывает, если какое-либо из действий блока try не удалось выполнить после трех попыток
         TCPExceptionOccured?.Invoke(this, new ExceptionArgs("Socket error at port " + endpoint.Port + ": " + e.Message, "Sending message error"));
     }
 }