static void Main(string[] args) { bool isServer = false; int port = 10000; if (args.Length > 0) { isServer = args[0].Equals("server"); } else { Console.WriteLine("Is this a server?"); var response = Console.ReadLine().Trim().ToLower(); isServer = response.Equals("yes") || response.Equals("y"); } string strport; if (args.Length > 1) { strport = args[1]; } else { Console.WriteLine("What port?"); strport = Console.ReadLine().Trim(); } if (int.TryParse(strport, out int temp)) { port = temp; } if (isServer) { var server = new OscUdpServer( new OscEndpoint(port) ); server.MessageReceived += (s, e) => { Console.WriteLine("Message received:"); PrintMessage(e.Message); }; Console.WriteLine("Begin listening on port {0}", port); server.BeginListen(); Console.WriteLine("Press 'q' to quit..."); var value = ""; while (value.ToLower() != "q") { value = Console.ReadLine(); } } else { var client = new OscUdpClient( new OscEndpoint(port) ); Console.WriteLine("Begin sending messages on port {0}", port); client.Connect(); Console.WriteLine("Enter message data, or type 'q' to quit.\r\nEx: /foo/bar iii 1 2 3"); var value = Console.ReadLine().Trim(); while (value.ToLower() != "q") { var parts = value.Split(new string[] { " " }, StringSplitOptions.None); var builder = new MessageBuilder(); try { builder.SetAddress(parts[0]); for (int i = 0; i < parts[1].Length; i++) { switch (parts[1][i]) { case 'i': builder.PushAtom(int.Parse(parts[2 + i])); break; case 'f': builder.PushAtom(float.Parse(parts[2 + i])); break; case 's': builder.PushAtom(parts[2 + i]); break; case 'b': builder.PushAtom(Encoding.ASCII.GetBytes(parts[2 + i])); break; } } Console.WriteLine("Sending message..."); try { client.SendMessage(builder.ToMessage()); } catch (Exception exc) { Console.WriteLine("Failed to send message: {0}", exc.Message); } Console.WriteLine("Message Sent!"); } catch (Exception ex) { Console.WriteLine("Failed to build message: {0}", ex.Message); } value = Console.ReadLine().Trim(); } } }
static void Main(string[] args) { bool isServer = false; int port = 10000; if (args.Length > 0) { isServer = args[0].Equals("server"); } else { Console.WriteLine("Is this a server?"); var response = Console.ReadLine().Trim().ToLower(); isServer = response.Equals("yes") || response.Equals("y"); } string strport; if (args.Length > 1) { strport = args[1]; } else { Console.WriteLine("What port?"); strport = Console.ReadLine().Trim(); } int temp; if (int.TryParse(strport, out temp)) port = temp; if (isServer) { var server = new OscUdpServer( new OscEndpoint(port) ); server.MessageReceived += (s, e) => { Console.WriteLine("Message received:"); PrintMessage(e.Message); }; Console.WriteLine("Begin listening on port {0}", port); server.BeginListen(); Console.WriteLine("Press 'q' to quit..."); var value = ""; while (value.ToLower() != "q") { value = Console.ReadLine(); } } else { var client = new OscUdpClient( new OscEndpoint(port) ); Console.WriteLine("Begin sending messages on port {0}", port); client.Connect(); Console.WriteLine("Enter message data, or type 'q' to quit.\r\nEx: /foo/bar iii 1 2 3"); var value = Console.ReadLine().Trim(); while (value.ToLower() != "q") { var parts = value.Split(new string[] { " " }, StringSplitOptions.None); var builder = new MessageBuilder(); try { builder.SetAddress(parts[0]); for (int i = 0; i < parts[1].Length; i++) { switch (parts[1][i]) { case 'i': builder.PushAtom(int.Parse(parts[2 + i])); break; case 'f': builder.PushAtom(float.Parse(parts[2 + i])); break; case 's': builder.PushAtom(parts[2 + i]); break; case 'b': builder.PushAtom(Encoding.ASCII.GetBytes(parts[2 + i])); break; } } Console.WriteLine("Sending message..."); try { client.SendMessage(builder.ToMessage()); } catch (Exception exc) { Console.WriteLine("Failed to send message: {0}", exc.Message); } Console.WriteLine("Message Sent!"); } catch (Exception ex) { Console.WriteLine("Failed to build message: {0}", ex.Message); } value = Console.ReadLine().Trim(); } } }