public static void ReceiveMessages() { IPEndPoint e = new IPEndPoint(IPAddress.Any, 15000); UdpClient u; while (true) { try { // Receive a message and write it to the console. u = new UdpClient(e); break; } catch { Thread.Sleep(1000); } } UdpState s = new UdpState(); s.e = e; s.u = u; u.BeginReceive(new AsyncCallback(ReceiveCallback), s); }
public static void ReceiveCallback(IAsyncResult ar) { UdpClient u = (UdpClient)((UdpState)(ar.AsyncState)).u; IPEndPoint e = (IPEndPoint)((UdpState)(ar.AsyncState)).e; Byte[] receiveBytes = u.EndReceive(ar, ref e); string receiveString = Encoding.ASCII.GetString(receiveBytes); messageReceived = true; UdpState s = new UdpState(); s.e = e; s.u = u; Console.Write(receiveString); Console.WriteLine(" "); Request r = new Request(receiveString, myUser, myBot); Result res = myBot.Chat(r); SPS.SpeakAsync(res.Output); Console.WriteLine("Bot: " + res.Output); u.Send(Encoding.UTF8.GetBytes(res.Output), res.Output.Length, e); u.BeginReceive(new AsyncCallback(ReceiveCallback), s); }