public async Task When_ListeningAndSendingMulticastOnIPV4_Then_MessagesAreSentAndReceived() { UInt16 universe = 1; using (var sender = new MulticastSacnSenderIPV4()) { using (var receiver = new MulticastSacnReceiverIPV4()) { DataPacket received = null; var hostname = Dns.GetHostName(); var ipAddresses = await Dns.GetHostAddressesAsync(hostname); receiver.OnDataPacketReceived += (sender, packet) => { received = packet; }; receiver.Listen(IPAddress.Any); receiver.JoinMulticastGroup(universe); var packet = new DataPacket(); packet.FramingLayer.SourceName = "Source name"; packet.FramingLayer.Universe = universe; packet.DMPLayer.PropertyValues = new byte[] { 1, 2, 3, 4 }; await sender.Send(packet); await Task.Delay(250); Assert.NotNull(received); } } }
static void Main(string[] args) { using var receiver = new MulticastSacnReceiverIPV4(); receiver.OnDataPacketReceived += (sender, packet) => { Console.WriteLine(packet.FramingLayer.Universe + ": "); Console.WriteLine(string.Join(", ", packet.DMPLayer.PropertyValues)); }; receiver.OnSynchronizationPacketReceived += (sender, packet) => { Console.WriteLine("Sync!"); }; receiver.OnUniverseDiscoveryPacketReceived += (sender, packet) => { Console.WriteLine("Discovery!"); }; receiver.Listen(IPAddress.Any); receiver.JoinMulticastGroup(1); Console.WriteLine("Listening. Press enter to exit"); Console.ReadLine(); }