static void Main(string[] args) { int listenPort = 4874; var listener = new UdpListener(listenPort); listener.OnConn = session => { Console.WriteLine(session + " connected"); }; listener.OnMessage = (session, message) => { Console.WriteLine(session + " received message " + string.Join(" ", message)); session.Send(BitConverter.GetBytes(session.Port)); session.Send(BitConverter.GetBytes(session.Port)); }; listener.OnError = (session, e) => { Console.WriteLine(session + " exception " + e.ToString()); }; for (var ix = 0; ix < 5; ix++) { var client = new UdpSender("localhost", listenPort); client.OnMessage = bytes => { Console.WriteLine("Port " + BitConverter.ToInt32(bytes, 0)); }; client.Send(new byte[] { 1, 2 }); } Console.Read(); }
public UdpSession(UdpClient conn, IPEndPoint endPoint, UdpListener listener) { this.conn = conn; this.endPoint = endPoint; this.listener = listener; }