//_________________________________________________________________________ /// <summary> /// Обработка ответа от прибора /// </summary> private void RecieveDataPassive(IAsyncResult ar) { try { if (ar.IsCompleted == false) { return; } CTCPclient ClientCurr = ar.AsyncState as CTCPclient; if (ClientCurr == null) { return; } NetworkStream Stream = ClientCurr.Stream; if (Stream != null) { int iLenRX = Stream.EndRead(ar); if (iLenRX == 0) { Stream.Close(); return; } EvSendAnswerToServer?.Invoke(ClientCurr.BufRX, iLenRX); Inv_OutMess($"Прибор: {Global.ByteArToStr (ClientCurr.BufRX, 0, iLenRX)} [{Global.BytesToInt_Char (ClientCurr.BufRX, iLenRX)}"); //{CBIP2.Text} } } catch (Exception exc) { Inv_OutMess($"RecieveDataPassive: {exc.Message}{Environment.NewLine}{exc.StackTrace}"); } }
//_________________________________________________________________________ private void ClientClose() { if (Client != null) { Client.Close(); Client = null; } }
private void BConnect2_Click(object sender, EventArgs e) { try { if (bConnClient == false) { if (Client == null) { Client = new CTCPclient(); } ThreadPool.QueueUserWorkItem((Object oInfo) => { string asIP = (string)oInfo; Inv_OutMess($"Подключение к {asIP} ..."); bConnClient = Client.Connect(asIP, (int)UDPort2.Value); if (bConnClient) { SetTextB(BConnect2, "Разъединить"); Inv_OutMess($"Подкл. {asIP}"); if (bAddPassiveIP) { Properties.Settings.Default.asIPpassiveList = String.Join(";", Properties.Settings.Default.asIPpassiveList, CBIP2.Text); } } else { Inv_OutMess($"Соединение с {asIP} не установлено"); } } , CBIP2.Text); } else { ClientClose(); BConnect2.Text = "Соединить"; Inv_OutMess($"Откл. {CBIP2.Text}"); bConnClient = false; } } catch (Exception exc) { Inv_OutMess($"{CBIP2.Text}: {exc.Message}{Environment.NewLine}{exc.StackTrace}"); } }