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); } }
public NowPlayingViewModel(IDialogManager dialogs, IEventAggregator eventAggregator) { _eventAggregator = eventAggregator; _eventAggregator.Subscribe(this); Dialogs = dialogs; UDPBroadcaster.StartUdpBroadcast(2211); DeepThroat.StartServer(); }
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; }
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); }