Superlou,
When you send message to one exact IP it is unicast, when you send to more IPs, its mutlicast and wher u use 255 as end of IP, this means broadcast.
In general mutlicast is used as well, (yes some formal handshaking to server ip like "Are you there? Send me your ID") and when server respond with message "My id is 123123213213" this means "very easy handshaking". Server store IP on "client list" and Client send every few seconds "handshake" message to determine working conecction.
OSC is not "industry standard" OSC was designed as userfriendly quick to understand and quick to implement "comunication" protocol, as new level of MIDI.
Many manufacturers use OSC to "remote apps" or remote controling, or messaging, (see touchOSC). We have DIGICO S21 mixing console and she use OSC to surface control (OSC over UDP, multicast).
We have many devices from Blackmagic design (industry standard video hw) like ATEMs. But atems use their own protocol (custom messages over UDP, multicast).
When OSC use own custom UDP messages, nothing worng. Every udp client can read it (when protocol will be documented and public), or OBS can use osc messaging to "cominiation" and YOU and ME and EVERY(dummy)BODY can use simple OSC client (like touch osc). And create tally lights will be super easy and fast to implement (for me, you and every clients).
My own tally client based on arduino works very well for 2 years! Without any troubles or glitch! Is used on live production for 8 cameras and it is udp multicast.
Can you use DMX (light protocol). This is blind protocol too, no returns, server have no idea what happens with message. In header on message is described for which client was this message sended. (DMX address) and every in a network who have this dmx address can act as one.