Пример #1
0
 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();
     }
 }
Пример #2
0
 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);
     }
 }
Пример #3
0
        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);
        }
Пример #4
0
        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();
        }