Пример #1
0
        private async void ListenUdpLoop()
        {
            bool udpListenerActive = true;

            while (udpListenerActive)
            {
                //wait until signal is recieved
                UdpSocketMessageReceivedEventArgs udpMsg = await MessageReceivedUdp();

                IncomingMsg?.Invoke(this, new MsgReceivedEventArgs(udpMsg.RemoteAddress, udpMsg.ByteData, TransportType.UDP));
            }
        }
Пример #2
0
        private async void ListenUdpLoop()
        {
            bool udpListenerActive = true;

            while (udpListenerActive)
            {
                //wait until signal is recieved
                UdpSocketMessageReceivedEventArgs udpMsg = await MessageReceivedUdp();

                if (ca != null)
                {
                    IncomingMsg?.Invoke(this, new MsgReceivedEventArgs(udpMsg.RemoteAddress, udpMsg.ByteData, TransportType.UDP));
                }
                else //catch (System.MissingMethodException e0)
                {
                    IncomingMsg2?.Invoke(this, new MsgReceivedEventArgs(udpMsg.RemoteAddress, udpMsg.ByteData, TransportType.UDP));
                }
                //catch (Exception e)
                //{
                //    throw e;
                //}
            }
        }
Пример #3
0
    private static void notifyUpperLayer(String content, Socket fromSock, TransportLayerCommunicator transportLayerCommunicator)
    {
        Console.WriteLine("Boxit::notifyUpperLayer ENTER");
                        Console.WriteLine("Boxit::notifyUpperLayer content=\n{0}", content);
                        Console.WriteLine("Boxit::notifyUpperLayer split contents=");
                        String[] split = content.Split(new char[] {'\0'});
                        foreach (String s in split)
                                Console.WriteLine(s);
                        byte[] byteContent = System.Text.Encoding.ASCII.GetBytes(content);

                        String strFromIP = null;
                        String strToIP = null;
                        String strOverlayGuid = null;
                        String strCallType = null;
                        byte[] byteOverlayGuid;
                        Guid overlayGuid = new Guid();;
                        String strBuffer;
                        byte[] byteBuffer;
                        MsgExtractionStatus msgExtractionStatus = MsgExtractionStatus.NOTHING_EXTRACTED;
                        foreach (String s in split)
                        {
                                if(msgExtractionStatus == MsgExtractionStatus.NOTHING_EXTRACTED || msgExtractionStatus == MsgExtractionStatus.MESSAGE_EXTRACTED)
                                {
                                        if(s.Length == 0)
                                                break;
                                        strFromIP = s;
                                        Console.WriteLine("FromIP received: {0}", s);
                                        msgExtractionStatus = MsgExtractionStatus.FROM_IP_EXTRACTED;

                                }
                                else if(msgExtractionStatus == MsgExtractionStatus.FROM_IP_EXTRACTED)
                                {
                                        strToIP = s;
                                        Console.WriteLine("ToIP received: {0}", s);
                                        msgExtractionStatus = MsgExtractionStatus.TO_IP_EXTRACTED;

                                }
                                else if(msgExtractionStatus == MsgExtractionStatus.TO_IP_EXTRACTED)
                                {
                                        strCallType = s;
                                        Console.WriteLine("haha 1\n{0}\n{1}", s, s.Length);
                                        //byteOverlayGuid = System.Text.Encoding.ASCII.GetBytes(strOverlayGuid);
                                        //overlayGuid = new Guid(s);
                                        msgExtractionStatus = MsgExtractionStatus.CALLTYPE_EXTRACTED;
                                }
                                else if(msgExtractionStatus == MsgExtractionStatus.CALLTYPE_EXTRACTED)
                                {
                                        strOverlayGuid = s;
                                        Console.WriteLine("haha 1.5\n{0}\n{1}", s, s.Length);
                                        byteOverlayGuid = System.Text.Encoding.ASCII.GetBytes(strOverlayGuid);
                                        overlayGuid = new Guid(s);
                                        msgExtractionStatus = MsgExtractionStatus.OVERLAYGUID_EXTRACTED;
                                }
                                else if(msgExtractionStatus == MsgExtractionStatus.OVERLAYGUID_EXTRACTED)
                                {
                                        strBuffer = s;
                                        Console.WriteLine("haha 2 \n {0}\n{1}", s, s.Length);
                                        byteBuffer = System.Text.Encoding.ASCII.GetBytes(strBuffer);

                                        //byte[] byteFromIP = System.Text.Encoding.ASCII.GetBytes(strFromIP);
                                        //IPAddress fromIP = new IPAddress(byteFromIP);

                                        IncomingMsg incomingMsg = new IncomingMsg();
                                        incomingMsg.strFromIP = strFromIP;
                                        incomingMsg.strToIP = strToIP;
                                        incomingMsg.strCallType = strCallType;
                                        incomingMsg.strOverlayGuid = strOverlayGuid;
                                        incomingMsg.extractedMsg = strBuffer;
                                        incomingMsg.completeMsg = byteContent;
                                        incomingMsg.offset = 0;
                                        incomingMsg.size = byteContent.Length;
                                        ParameterizedThreadStart processMsgJob = new ParameterizedThreadStart(processMsg);
                                        Thread processMsgThread = new Thread(processMsgJob);
                                        processMsgThread.Start(incomingMsg);
                                        //processMsg(strFromIP, strToIP, strOverlayGuid, strBuffer, byteContent, 0, byteContent.Length);
                                        msgExtractionStatus = MsgExtractionStatus.MESSAGE_EXTRACTED;
                                }
                        }
    }
Пример #4
0
    static private void notifyUpperLayer(String content, Socket fromSock, TransportLayerCommunicator transportLayerCommunicator)
    {
        Console.WriteLine("Boxit::notifyUpperLayer ENTER");
        Console.WriteLine("Boxit::notifyUpperLayer content=\n{0}", content);
        Console.WriteLine("Boxit::notifyUpperLayer split contents=");
        String[] split = content.Split(new char[] { '\0' });
        foreach (String s in split)
        {
            Console.WriteLine(s);
        }
        byte[] byteContent = System.Text.Encoding.ASCII.GetBytes(content);

        String strFromIP      = null;
        String strToIP        = null;
        String strOverlayGuid = null;
        String strCallType    = null;

        byte[] byteOverlayGuid;
        Guid   overlayGuid = new Guid();;
        String strBuffer;

        byte[] byteBuffer;
        MsgExtractionStatus msgExtractionStatus = MsgExtractionStatus.NOTHING_EXTRACTED;

        foreach (String s in split)
        {
            if (msgExtractionStatus == MsgExtractionStatus.NOTHING_EXTRACTED || msgExtractionStatus == MsgExtractionStatus.MESSAGE_EXTRACTED)
            {
                if (s.Length == 0)
                {
                    break;
                }
                strFromIP = s;
                Console.WriteLine("FromIP received: {0}", s);
                msgExtractionStatus = MsgExtractionStatus.FROM_IP_EXTRACTED;
            }
            else if (msgExtractionStatus == MsgExtractionStatus.FROM_IP_EXTRACTED)
            {
                strToIP = s;
                Console.WriteLine("ToIP received: {0}", s);
                msgExtractionStatus = MsgExtractionStatus.TO_IP_EXTRACTED;
            }
            else if (msgExtractionStatus == MsgExtractionStatus.TO_IP_EXTRACTED)
            {
                strCallType = s;
                Console.WriteLine("haha 1\n{0}\n{1}", s, s.Length);
                //byteOverlayGuid = System.Text.Encoding.ASCII.GetBytes(strOverlayGuid);
                //overlayGuid = new Guid(s);
                msgExtractionStatus = MsgExtractionStatus.CALLTYPE_EXTRACTED;
            }
            else if (msgExtractionStatus == MsgExtractionStatus.CALLTYPE_EXTRACTED)
            {
                strOverlayGuid = s;
                Console.WriteLine("haha 1.5\n{0}\n{1}", s, s.Length);
                byteOverlayGuid     = System.Text.Encoding.ASCII.GetBytes(strOverlayGuid);
                overlayGuid         = new Guid(s);
                msgExtractionStatus = MsgExtractionStatus.OVERLAYGUID_EXTRACTED;
            }
            else if (msgExtractionStatus == MsgExtractionStatus.OVERLAYGUID_EXTRACTED)
            {
                strBuffer = s;
                Console.WriteLine("haha 2 \n {0}\n{1}", s, s.Length);
                byteBuffer = System.Text.Encoding.ASCII.GetBytes(strBuffer);

                //byte[] byteFromIP = System.Text.Encoding.ASCII.GetBytes(strFromIP);
                //IPAddress fromIP = new IPAddress(byteFromIP);

                IncomingMsg incomingMsg = new IncomingMsg();
                incomingMsg.strFromIP      = strFromIP;
                incomingMsg.strToIP        = strToIP;
                incomingMsg.strCallType    = strCallType;
                incomingMsg.strOverlayGuid = strOverlayGuid;
                incomingMsg.extractedMsg   = strBuffer;
                incomingMsg.completeMsg    = byteContent;
                incomingMsg.offset         = 0;
                incomingMsg.size           = byteContent.Length;
                ParameterizedThreadStart processMsgJob = new ParameterizedThreadStart(processMsg);
                Thread processMsgThread = new Thread(processMsgJob);
                processMsgThread.Start(incomingMsg);
                //processMsg(strFromIP, strToIP, strOverlayGuid, strBuffer, byteContent, 0, byteContent.Length);
                msgExtractionStatus = MsgExtractionStatus.MESSAGE_EXTRACTED;
            }
        }
    }