Пример #1
0
        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();
                }
            }
        }
Пример #2
0
        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();
                }
            }
        }