public TCPСоединение ПередатьДанные(string Хост, int Порт, Структура стрДанные) { TCPСоединение Соединение = null; try { Соединение = TCPСоединение.Новый(Хост, Порт); Соединение.ТаймаутОтправки = 5000; Соединение.ОтправитьДвоичныеДанныеАсинхронно(СтруктуруВДвоичныеДанные(стрДанные)); return(Соединение); } catch (Exception e) { Сообщить(ОписаниеОшибки(e)); if (Соединение == Неопределено) { Сообщить(ИмяМодуля + ": Хост недоступен: " + Хост + ":" + Порт); } else { Соединение.Закрыть(); Соединение = null; } } return(Соединение); // ПередатьДанные() }
public TCPСоединение ПолучитьСоединение(int timeout = 0) { while (5 < timeout && _Conn.Count == 0) { Thread.Sleep(5); timeout -= 5; } if (_Conn.Count != 0) { TCPСоединение val = _Conn.Dequeue(); return(val); } return(null); }
private void StartList() { _Active = "true"; while (_Active == "true") { try { var client = _listener.AcceptTcpClient(); var _client = new TCPСоединение(client); _client.ПриниматьЗаголовоки = _readheaders; _client.ПрочитатьДвоичныеДанныеАсинхронно(); _Conn.Enqueue(_client); } catch { } } _Active = "none"; }