Example #1
0
        public Dispatcher()
        {
            Console.Title = "Dispatcher";

            UDPClient udpClient = new UDPClient();

            if (udpClient.IsBroadcasterExists())
            {
                Console.WriteLine("****** Диспетчер уже присутствует в сети. ******");
            }
            else
            {
                //Console.WriteLine("****** Диспетчер запущен ******");

                int tcpport = Convert.ToInt32(ConfigurationManager.AppSettings["dispatcherTCPport"].ToString());
                tcpListener            = new TCPListener(tcpport);
                tcpListener.onMessage += handleRequest;
                tcpListener.StartListen();
                Console.WriteLine("TCP слушает по адресу " + tcpListener.Adress);

                UDPBroadcasterObj = new UDPBroadcaster(8555, "239.254.255.255");
                UDPBroadcasterObj.Start();
                ShowServers();
            }
        }
 void client_Disconnected(TCPClient sender)
 {
     sender.sck.Dispose();
     _connections.Remove(sender);
     if (_connections.Count == 0)
     {
         UDPBroadcaster.StartUdpBroadcast(2211);
     }
 }
Example #3
0
        public NowPlayingViewModel(IDialogManager dialogs, IEventAggregator eventAggregator)
        {
            _eventAggregator = eventAggregator;
            _eventAggregator.Subscribe(this);

            Dialogs = dialogs;

            UDPBroadcaster.StartUdpBroadcast(2211);
            DeepThroat.StartServer();
        }
Example #4
0
    async Task SendUDPPacket(List <byte> data)
    {
        UDPListener    listener    = UDPListener.Instance;
        UDPBroadcaster broadcaster = UDPBroadcaster.Instance;

        if (listener != null)
        {
            await listener.SendUDPMessage(udpEndpoint, data.ToArray());
        }
        else if (broadcaster != null)
        {
            await broadcaster.SendUDPMessage(udpEndpoint, data.ToArray());
        }
        else
        {
            throw new Exception("No available UDP channel to send the message through!");
        }
    }
 private void OnDestroy()
 {
     Instance = null;
     StopBroadcasting();
 }
 private void Start()
 {
     Instance = this;
 }
Example #7
0
 private void ReceivedCommand(AppCommand cmd)
 {
     try
     {
         if (cmd.CommandType == SystemCommandEnum.CloseAllClients)
         {
             Environment.Exit(0);
         }
         else
         if (cmd.CommandType == SystemCommandEnum.Direct_Client_CheckLicense)
         {
             // Se a licença e o nome da máquina forem iguais a licença instalada na máquina, então retorna a mensagem
             if ((cmd.Args.Length > 0) && (cmd.Args[0].ToString().ToUpper() == dataConfig.SerialKey.ToUpper()) && (cmd.Args[1].ToString().ToUpper() == Environment.MachineName.ToUpper()))
             {
                 // Os eventos do servidor são reconhecidos através do UDP para que o servidor não nos convoca tempo após vez.
                 AppCommand answerCommand = new AppCommand(SystemCommandEnum.Direct_Client_CheckLicense_ACK, DateTime.Now);
                 answerCommand.BroadcastIndex  = cmd.BroadcastIndex;
                 answerCommand.ToDoActionIndex = cmd.ToDoActionIndex;
                 UDPBroadcaster.BroadcastCommand(answerCommand, dataConfig.ServerPort, dataConfig.ClientPort, dataConfig.ServerHost);
                 // Cria o objeto remoto
                 RetrieveTelephoneData(cmd.ToDoActionIndex);
             }
         }
         else if (cmd.CommandType == SystemCommandEnum.PingClients)
         {
             Connect("2223");
             if (!mHaveBeenPinged)
             {
                 UDPBroadcaster.BroadcastCommand(new AppCommand(SystemCommandEnum.PongClients, "2223"), dataConfig.ServerPort, dataConfig.ClientPort, dataConfig.ServerHost);
             }
         }
         else if (cmd.CommandType == SystemCommandEnum.PongClientAcknowledge)
         {
             if (cmd.Args.Length > 0 && cmd.Args[0].ToString() == "")
             {
                 mHaveBeenPinged = true;
             }
         }
         else if (cmd.CommandType == SystemCommandEnum.PingReset)
         {
             mHaveBeenPinged = false;
         }
         else if (cmd.CommandType == SystemCommandEnum.RequestMonitorExtension)
         {
             if (cmd.Args.Length > 0 && cmd.Args[0].ToString() == "")
             {
                 Connect("");
             }
         }
         else if (cmd.CommandType == SystemCommandEnum.RequestReleaseExtension)
         {
             if (cmd.Args.Length > 0 && cmd.Args[0].ToString() == "")
             {
                 Disconnect("");
             }
         }
     }
     catch (SocketException ex)
     {
         Log.AddLog("P2P", "Erro ao receber pacote: " + ex.Message);
     }
     catch (Exception ex)
     {
         Log.AddLog("P2P", "Erro ao receber pacote: " + ex.Message);
     }
 }
 public TransactionController()
 {
     deviceDictionary = new ConcurrentDictionary <IPAddress, DeviceInfo>();
     broadcaster      = new UDPBroadcaster(BC_PORT);
     udpHandler       = new UDPHandler(this);
 }