private void SenderThread() { Random rng = new Random(); while (true) { int serverIndex = rng.Next(serviceIdentity.Servers.Count); PublicIdentity serverIdentity = serviceIdentity.Servers[serverIndex]; byte[] serverPublicKey = serverIdentity.PublicKey; int randomNumber = rng.Next(10000); string message = string.Format("Hello {0}", randomNumber); byte[] messageBytes = Encoding.UTF8.GetBytes(message); Console.WriteLine("Sending message {0} to {1}", message, IoScheduler.PublicKeyToString(serverPublicKey)); scheduler.SendPacket(serverPublicKey, messageBytes); Thread.Sleep(1000); } }
private void ReceiverThread() { while (true) { bool ok; bool timedOut; byte[] remote; byte[] messageBytes; scheduler.ReceivePacket(0, out ok, out timedOut, out remote, out messageBytes); if (!ok) { Console.WriteLine("Not OK, so terminating receiver thread"); return; } if (timedOut) { Thread.Sleep(100); continue; } string message = Encoding.UTF8.GetString(messageBytes); Console.WriteLine("Received message {0} from {1}", message, IoScheduler.PublicKeyToString(remote)); } }