Esempio n. 1
0
 public OSCServer(int port)
 {
     AddressOnMessageReceived = new Dictionary <string, EventHandler <OSCMessageReceivedArgs> >();
     client = new UdpClient(port);
     Task.Factory.StartNew(async() =>
     {
         while (client != null)
         {
             while (client.Available == 0)
             {
                 await Task.Delay(10);
             }
             UdpReceiveResult result = await client.ReceiveAsync();
             OSCPacket packet        = OSCPacket.Parse(result.Buffer);
             if (packet is OSCBundle)
             {
                 OSCBundle bundle = packet as OSCBundle;
                 OnBundleReceived(bundle);
             }
             else
             {
                 OSCMessage message = packet as OSCMessage;
                 OnMessageReceived(message);
             }
         }
     });
 }
Esempio n. 2
0
 public static OSCPacket Parse(BinaryReader reader)
 {
     if (reader.PeekChar() == '#')
     {
         // OSC Bundle
         return(OSCBundle.Parse(reader));
     }
     else
     {
         return(OSCMessage.Parse(reader));
     }
 }
Esempio n. 3
0
 private void OnBundleReceived(OSCBundle bundle)
 {
     foreach (OSCPacket packet in bundle.Contents)
     {
         if (packet is OSCBundle)
         {
             OSCBundle subBundle = packet as OSCBundle;
             OnBundleReceived(subBundle);
         }
         else
         {
             OSCMessage message = packet as OSCMessage;
             OnMessageReceived(message);
         }
     }
 }
Esempio n. 4
0
        public static void Main(string[] args)
        {
            OSCServer server = new OSCServer(9000);

            server.DefaultOnMessageReceived += Server_OnMessageReceived;
            server.AddressOnMessageReceived.Add("/arsehole", (sender, messageArgs) =>
            {
                Console.Out.WriteLine("special " + messageArgs.Message);
            });
            OSCClient client = new OSCClient("127.0.0.1", 9000);
            OSCBundle bundle = new OSCBundle(DateTime.Now + TimeSpan.FromSeconds(3), new OSCMessage("/arsehole", "Sent " + DateTime.Now));

            client.Send(bundle);
            while (true)
            {
            }
        }