/// <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); }
/// <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")); } }