static void Main(string[] args)
        {
            ConfigHelper.Init();

            UdpReceiver udp = new UdpReceiver();

            udp.Initialize();
            ILogMessageNotifiable logNotifiable = new SQLNotifiable();

            udp.Attach(logNotifiable);

            udp.Start();

            Console.WriteLine("输入‘E’/‘e’退出:");
            while (!Console.ReadLine().Equals("e", StringComparison.CurrentCultureIgnoreCase))
            {
            }

            try
            {
                udp.Terminate();
            }
            catch (Exception ex)
            {
            }
        }
예제 #2
0
        public void Start()
        {
            if (!IsRunning)
            {
                framesReceived = 0;
                bytesReceived  = 0;

                receiver.Start();
            }
        }
예제 #3
0
        public void Start()
        {
            factory = new MessageParserFactory();
            MessageParser parser = factory.Create();

            receiveSocket = new UdpReceiver(ListenToIp, ListeToPort);
            receiveSocket.ReceiveEvent += parser.OnBytes;

            receiveSocket.Start();
        }
예제 #4
0
        public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
        {
            if (env.IsDevelopment())
            {
                app.UseDeveloperExceptionPage();
            }
            else
            {
                app.UseExceptionHandler("/Error");
            }

            app.UseStaticFiles();
            app.UseRouting();
            app.UseEndpoints(endpoints =>
            {
                endpoints.MapControllers();
                endpoints.MapBlazorHub();
                endpoints.MapFallbackToPage("/_Host");
            });

            var scope  = app.ApplicationServices.CreateScope();
            var logger = scope.ServiceProvider.GetRequiredService <ILogger <Program> >();

            try
            {
                var context = scope.ServiceProvider.GetService <IridiumLiveDbContext>();
                context.Database.EnsureDeleted();
                context.Database.EnsureCreated();

                //this should be called in a different spot
                context.Database.ExecuteSqlRaw(@"
                    create view if not exists V_ViewIras as 
                    select i.Id, i.Time, i.UtcTicks, i.Quality, i.SatNo, s.Name, i.Beam, i.Lat, i.Lon, i.Alt
                    from Iras i
                    inner join Sats s on i.SatNo = s.SatNo
                    order by i.UtcTicks desc");
                context.SaveChanges();
                satsService = new SatsService(Configuration);

                int         port = int.TryParse(Configuration["IridiumLiveSettings:UdpListeningPort"], out int i) ? i : 15007;
                UdpReceiver srv  = new UdpReceiver(port);
                srv.OnUDPPacket += Srv_OnUDPPacket;
                srv.Start();
            }
            catch (Exception ex)
            {
                logger.LogError(ex, "Error during system startup:configuration.");
            }
        }
예제 #5
0
        public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
        {
            if (env.IsDevelopment())
            {
                app.UseDeveloperExceptionPage();
            }
            else
            {
                app.UseExceptionHandler("/Error");
            }

            app.UseStaticFiles();
            app.UseRouting();
            app.UseEndpoints(endpoints =>
            {
                endpoints.MapControllers();
                endpoints.MapBlazorHub();
                endpoints.MapFallbackToPage("/_Host");
            });

            var scope  = app.ApplicationServices.CreateScope();
            var logger = scope.ServiceProvider.GetRequiredService <ILogger <Program> >();

            try
            {
                var context = scope.ServiceProvider.GetService <ServiceDbContext>();
                //context.Database.EnsureDeleted();
                context.Database.EnsureCreated();
                rxLineService = new AppService(context);

                int         port = int.TryParse(Configuration["IridiumLiveSettings:UdpListeningPort"], out int i) ? i : 15007;
                UdpReceiver srv  = new UdpReceiver(port);
                srv.OnUDPPacket += Srv_OnUDPPacket;
                srv.Start();
            }
            catch (Exception ex)
            {
                logger.LogError(ex, "Error during system startup:configuration.");
            }
        }
예제 #6
0
        public UdpMulticastingChannel(string address, int port)
        {
            MessageParserFactory = new MessageParserFactory();
            MessageParser parser        = MessageParserFactory.Create();
            UdpReceiver   receiveSocket = new UdpReceiver(address, port);

            receiveSocket.ReceiveEvent += parser.OnBytes;
            receiveSocket.Start();


            var sendSocket = new UdpSource(address, port);

            sendSocket.Start();
            var asyncWriter = new DaemonWritter(sendSocket);

            //var asyncWriter = new BatchWriter(sendSocket,1500);
            TopicPublisher = new TopicPublisher(asyncWriter);
            TopicPublisher.Start();

            _disposables.Add(receiveSocket);
            _disposables.Add(sendSocket);
        }
예제 #7
0
        private void Form1_Load(object sender, EventArgs e)
        {
            this.lstMessages.Items.Clear();
            this.lstPeers.Items.Clear();
            manager     = new MessageManager();
            connections = new Dictionary <User, ClientConnection>();

            IPAddress[] addresses = Global.getLocalIPAddresses();
            this.cmbAddresses.Items.AddRange(addresses);
            if (addresses.Length > 0)
            {
                this.cmbAddresses.SelectedIndex = 0;
            }

            udpReceivers = new List <UdpReceiver>();
            foreach (var address in addresses)
            {
                var udpReceiver = new UdpReceiver(this, address);
                udpReceiver.ServerFound += Broadcast_ServerFound;
                udpReceiver.Start();
                udpReceivers.Add(udpReceiver);
            }
        }
예제 #8
0
 public void Start()
 {
     receiveSocket.Start();
 }