public void Listener() { Task.Run(async() => { using var updClient = udp; while (true) { var result = await updClient.ReceiveAsync(); try { byte[] resultBytes = result.Buffer; Package package = Package.fromBytes(resultBytes); if (package.isManagementMessage()) { ManagementMessage message = Package.ReceiveManagementMessage(package); if (message.isRoutingTableRequest()) { Logs.LogsReceiveRoutingTableRequest(message); String routeTable = gtJSONAnswer(message); ManagementAnswer answer = ManagementAnswer.RouterAnswer(routeTable); byte[] package1 = Package.RoutingTables(answer).toBytes(); Logs.LogsSendRoutingTable(message); udp.Send(package1, package1.Length, message.getRequesterEndPoint()); } } } catch (Exception e) { Logs.LogsManagementException(e); } } }); }
public void asyncStart() { listener(); while (true) { ManagementMessage message = ManagementMessage.RoutingTableRequest(Name, EndPoint); Package package2 = Package.ManagementMessage_(message); byte[] messageBytes = package2.toBytes(); Logs.LogsSendRoutingTableRequest(message, Name); udp.Send(messageBytes, messageBytes.Length, new IPEndPoint(IPAddress.Parse("127.0.0.2"), 4321)); Thread.Sleep(5000); if (nhfletable_set == true) { break; } } while (true) { Console.ReadLine(); } }
public String gtJSONAnswer(ManagementMessage message) { var jsonFile = File.ReadAllText(DevicesList[message.getMessage()]); return(jsonFile); }