示例#1
0
 private void Desconectar()
 {
     // Efetivamente desconecta
     UDP.Disconnect();
     // Finaliza a rotina de eventos de recepção
     UDP.DataReceivedInBackGround -= UDP_DataReceivedInBackGround;
     //
     btnConnect.Text = "Connect";
     btnSend.Enabled = false;
 }
        public void PreCloseWorld()
        {
            ClientTCP.OnMessageReceived -= ParseServerMessage;
            ClientUDP.OnMessageReceived -= ParseServerUDPMessage;

            ClientTCP.SendMessage("Closing World: " + Main.worldName);
            if (ClientTCP.Connected)
            {
                ClientTCP.Disconnect();
            }
            if (ClientUDP.Listening)
            {
                ClientUDP.Disconnect();
            }
        }
        private async void Search_TCP232()
        {
            // Classe usada para listar o ARP (Todos os IP's registrados no gateway)
            ArpHelper arp = new ArpHelper();

            // Gera a lista ARP com IPs, MACs e Types dos Equipamentos Registrados na Rede.
            listArp = arp.GetArpResult();
            //
            byte[] searchCommand = { 0xFF, 0x01, 0x01, 0x02 };
            //
            byte[] basicCommmand = { 0x55, 0xC6 };

            //
            lstListDevices.Items.Clear();
            // Roda a lista ARP enviando o comando de "Search" na porta 1901.
            foreach (var device in listArp)
            {
                lstListDevices.Items.Add(GetListViewItem(device));

                // Conecta via UDP ao Device
                UDP.Connect(device.Ip, 1901, 1901);
                //
                UDP.DataReceivedInBackGround += UDP_DataReceivedInBackGround;
                // Envia um comando de busca, caso o device responda corretamente, então trata-se de um módulo USR-TCP232
                UDP.Send(searchCommand);
                //
                await Task.Delay(800);

                //
                UDP.DataReceivedInBackGround -= UDP_DataReceivedInBackGround;
                //
                UDP.Disconnect();
                //
                await Task.Delay(50);
            }
        }