private void SENDDDD(string data) { try { Socket socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); IPHostEntry hostEntry = Dns.GetHostEntry(TenMayDangGoi); IPAddress[] addressList = hostEntry.AddressList; IPAddress[] array = addressList; IPAddress address = default(IPAddress); foreach (IPAddress iPAddress in array) { if (iPAddress.AddressFamily == AddressFamily.InterNetwork) { address = iPAddress; break; } } IPEndPoint remoteEP = new IPEndPoint(address, 15123); socket.SendTimeout = 1000; socket.Connect(remoteEP); byte[] bytes = Encoding.ASCII.GetBytes(data); socket.Send(bytes, bytes.Length, SocketFlags.None); } catch (Exception ex) { ProjectData.SetProjectError(ex); Exception ex2 = ex; StatusEventHandler statusEvent = StatusEvent; statusEvent?.Invoke(3, "Kết nối bị lỗi."); ProjectData.ClearProjectError(); } }
private void KiemTra() { checked { while (true) { if (flagSrarting) { if (countKiemTra < 3) { Thread.Sleep(1000); countKiemTra++; Sendata("ONCALL"); continue; } break; } return; } flagSrarting = false; countKiemTra = 0; try { udpRecive.Close(); } catch (Exception ex) { ProjectData.SetProjectError(ex); Exception ex2 = ex; ProjectData.ClearProjectError(); } try { udpSend.Close(); } catch (Exception ex3) { ProjectData.SetProjectError(ex3); Exception ex4 = ex3; ProjectData.ClearProjectError(); } flagSrarting = false; countKiemTra = 0; StatusEventHandler statusEvent = StatusEvent; statusEvent?.Invoke(1, TenMayDangGoi); } }
public void EndCall() { flagSrarting = false; countKiemTra = 0; try { udpRecive.Close(); } catch (Exception ex) { ProjectData.SetProjectError(ex); Exception ex2 = ex; ProjectData.ClearProjectError(); } try { udpSend.Close(); } catch (Exception ex3) { ProjectData.SetProjectError(ex3); Exception ex4 = ex3; ProjectData.ClearProjectError(); } flagSrarting = false; countKiemTra = 0; try { Sendata("ENDCALL"); } catch (Exception ex5) { ProjectData.SetProjectError(ex5); Exception ex6 = ex5; ProjectData.ClearProjectError(); } StatusEventHandler statusEvent = StatusEvent; statusEvent?.Invoke(1, TenMayDangGoi); }
public void XuLyData(Socket sock) { string text = ""; try { byte[] array = new byte[1025]; sock.ReceiveTimeout = 3000; int length = sock.Receive(array, array.Length, SocketFlags.None); text = Encoding.ASCII.GetString(array, 0, array.Length); string text2 = text.Substring(0, length); string left = text2; if (Operators.CompareString(left, "ENDCALL", false) == 0) { flagSrarting = false; countKiemTra = 0; try { udpRecive.Close(); } catch (Exception ex) { ProjectData.SetProjectError(ex); Exception ex2 = ex; ProjectData.ClearProjectError(); } try { udpSend.Close(); } catch (Exception ex3) { ProjectData.SetProjectError(ex3); Exception ex4 = ex3; ProjectData.ClearProjectError(); } flagSrarting = false; countKiemTra = 0; StatusEventHandler statusEvent = StatusEvent; statusEvent?.Invoke(1, TenMayDangGoi); } else if (Operators.CompareString(left, "BUSY", false) == 0) { StatusEventHandler statusEvent = StatusEvent; statusEvent?.Invoke(0, TenMayDangGoi); } else if (Operators.CompareString(left, "ONCALL", false) == 0) { countKiemTra = 0; } else if (Operators.CompareString(left, "OK", false) == 0) { flagSrarting = true; IPHostEntry hostEntry = Dns.GetHostEntry(TenMayDangGoi); IPAddress[] addressList = hostEntry.AddressList; IPAddress[] array2 = addressList; IPAddress address = default(IPAddress); foreach (IPAddress iPAddress in array2) { if (iPAddress.AddressFamily == AddressFamily.InterNetwork) { address = iPAddress; break; } } udpSend = new UdpClient(); udpRecive = new UdpClient(15346); send_Com = new IPEndPoint(address, 15345); recive_Com = new IPEndPoint(address, 15346); Thread thread = new Thread(Send); thread.Start(); Thread thread2 = new Thread(Receive); thread2.Start(); Thread thread3 = new Thread(KiemTra); thread3.Start(); StatusEventHandler statusEvent = StatusEvent; statusEvent?.Invoke(2, TenMayDangGoi); } else if (flagSrarting) { Sendata("BUSY"); } else { TenMayDangGoi = text2; flagSrarting = true; Sendata("OK"); udpSend = new UdpClient(); udpRecive = new UdpClient(15345); IPHostEntry hostEntry2 = Dns.GetHostEntry(TenMayDangGoi); IPAddress[] addressList2 = hostEntry2.AddressList; IPAddress[] array3 = addressList2; IPAddress address2 = default(IPAddress); foreach (IPAddress iPAddress2 in array3) { if (iPAddress2.AddressFamily == AddressFamily.InterNetwork) { address2 = iPAddress2; break; } } send_Com = new IPEndPoint(address2, 15346); recive_Com = new IPEndPoint(address2, 15345); Thread thread4 = new Thread(Send); thread4.Start(); Thread thread5 = new Thread(Receive); thread5.Start(); Thread thread6 = new Thread(KiemTra); thread6.Start(); StatusEventHandler statusEvent = StatusEvent; statusEvent?.Invoke(2, TenMayDangGoi); } } catch (Exception ex5) { ProjectData.SetProjectError(ex5); Exception ex6 = ex5; ProjectData.ClearProjectError(); } sock.Close(); }