示例#1
0
        private void ReceiveDemoData(CancellationToken Token)
        {
            while (true)
            {
                if (Token.IsCancellationRequested)
                {
                    return;
                }

                UdpModel.Handle(GenerateDemoData());
                Logger.Log("Демо данные были обработаны", RecordType.INFO, Source.UDP);
                Thread.Sleep(1000);
            }
        }
示例#2
0
        private void ReceiveRealData(CancellationToken Token)
        {
            try
            {
                while (true)
                {
                    if (Token.IsCancellationRequested)
                    {
                        return;
                    }

                    //Кол-во принимаемых байтов
                    int BytesCount = 0;

                    //Получение Ip адреса с которого пришли данные
                    EndPoint RemoteIp = new IPEndPoint(IPAddress.Any, 0);

                    //Принятие данных с udp пакетов
                    do
                    {
                        BytesCount = this.Socket.ReceiveFrom(this.Buffer, ref RemoteIp);
                    }while (this.Socket.Available > 0);

                    IPEndPoint RemoteFullIp = RemoteIp as IPEndPoint;

                    UdpModel.Handle(this.Buffer);

                    Logger.Log(RemoteFullIp.Address.ToString() + ":" + RemoteFullIp.Port.ToString() + "| Данные получены и обработаны", RecordType.INFO, Source.UDP);
                }
            }
            catch (Exception ex)
            {
                Logger.Log(ex.Message, RecordType.ERROR, Source.UDP);
            }
            finally
            {
                this.Stop();
                Logger.Log("Произошла принудительная остановка сокета", RecordType.WARNING, Source.UDP);
            }
        }