public void GiveConnectionWithHost(RestOfHosts destination) { byte[] buffer = new byte[16]; // Dispatcher.Invoke(() => ListBox12.Items.Add("Selected speed " + selectedSpeed)); client.socketToDomain.Send(Encoding.ASCII.GetBytes("NCC-GET " + client.clientName + " " + destination.Name + " " + selectedSpeed)); //callRequest(adres A, adres B, speed) //probnie 10Gbps ale chyba zrobimy mozliwosc wyboru tej szybkosci bitowej, wysyła to callRequest że chce taką przepustowość do takiego hosta client.socketToDomain.Receive(buffer); // odpowiedź od Domaina if (Encoding.ASCII.GetString(buffer.ToList().GetRange(0, 3).ToArray()).Equals("ACK")) // jeśli okej to wyśle ACK { //destination.modulation = BitConverter.ToInt32(buffer, 4); // dla danego sąsiada na podstawie zwróconej długości ścieżki w Routing Controller w Domainze // Domain zadecyduje jakiej modulacji użyć Console.WriteLine("I caught conf"); // Dispatcher.Invoke(() => ListBox12.Items.Add("Selected speed " + client.clientName)); destination.firstFrequencySlot = BitConverter.ToInt32(buffer, 3); // używane szczeliny do danego sąsiada destination.lastFrequencySlot = BitConverter.ToInt32(buffer, 7); ushort port = BitConverter.ToUInt16(buffer, 11); foreach (var linkR in client.linkResources) { if (port == linkR.port) { for (int i = destination.firstFrequencySlot; i <= destination.lastFrequencySlot; i++) { linkR.slots[i] = false; } break; } } Console.WriteLine("Changed state"); ListBox12.Items.Add("I've got path to " + destination.Name + ". You can start sending messages to this destination."); //comboBox1.Items.Add(destination); // dodajemy do możliwych adresatów wiadomości danego sąsiada } // WaitForData(); // po uzyskaniu wszystkich informacji przechodzimy w stan taki jak w 1 etapie }
public static Client createHost(string ConFile) { Client host = new Client(); string line; StreamReader streamReader = new StreamReader(ConFile); line = streamReader.ReadLine(); host.clientName = line.Split(' ')[1]; line = streamReader.ReadLine(); host.clientIP = IPAddress.Parse(line.Split(' ')[1]); line = streamReader.ReadLine(); host.portOut = ushort.Parse(line.Split(' ')[1]); line = streamReader.ReadLine(); host.cloudIP = IPAddress.Parse(line.Split(' ')[1]); line = streamReader.ReadLine(); host.cloudPort = ushort.Parse(line.Split(' ')[1]); /*line = streamReader.ReadLine(); * host.managementIP = IPAddress.Parse(line.Split(' ')[1]);*/ line = streamReader.ReadLine(); host.domainPort = ushort.Parse(line.Split(' ')[1]); RestOfHosts neighbour; while ((line = streamReader.ReadLine()) != null) { string Name = line.Split(' ')[0]; IPAddress ip = IPAddress.Parse(line.Split(' ')[1]); neighbour = new RestOfHosts(line); host.Neighbours.Add(neighbour); } Console.WriteLine("Host has been created"); return(host); }