Platform Dependent Networking Quirks

From Waltz
Jump to navigation Jump to search

Waltz runs across several different operating systems that can be boiled down to two types: Windows and *nix. macOS, Solaris, Linux, and Unix are all *nix-based operating systems and share common parts of their networking stack with each other. Windows has its own network stack that sometimes diverges from the standard *nix network stacks. Those deviations are documented here.

Receiving UDP Broadcasts

On Windows-based systems, UDP broadcasts can be filtered by a specific network interface by assigning the localInterface of a node to a specific network interface. You can also use the wildcard interface (LocalInterface("0.0.0.0")) to listen to broadcast messages being received by any and all network interfaces simultaneously.

On traditional *nix-based systems, you don't receive broadcast messages to any specific network interface, only to the wildcard interface (LocalInterface("0.0.0.0")). This is the designed behavior for UDP sockets since BSD, from which *nix is derived. The result of this implementation difference is that when shows are being moved between Windows and *nix based machines, there is a variation in behavior with the same show file. To avoid this, use the wildcard interface (LocalInterface("0.0.0.0")) if you are using a *nix-based system, or will be moving your show between Windows and *nix-based systems.

This is only an issue with nodes that are based on receiving UDP broadcast data, including the ArtNet Input Node and UDP Input Node.