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); } }