Sending OSC to two applications on one computer

Hi Everyone! I would like to send OSC commands to two applications running on the same computer. However whichever application is started first appears to be the only one receiving any data.

Is there any way to send to two different ports?

I’ve tried sending to my broadcast address and setting both applications to listen on the same port but that didn’t work.

Just wondering what the best workflow is for this as I’m sure there is a way!

Thanks!

That’s a limitation with OSC and the UDP protocol. When a program starts listening or “binds” to a port, it becomes the only application that can listen to that port. Multiple applications can send OSC/UDP packets to that port at one time, but only one program can listen. The best workaround I can think of is having an application act as a repeater that can listen on one port and repeat that message out onto two different ports. I can’t think of any applications that can do this natively unless someone has written a specific tool. If you’re familiar with Processing.org, you could easily write a program that does this with the UDP examples. You wouldn’t have to decode the packet into OSC either, you could just forward UDP packets received to two different ports on the out.
There might be a way to do this with port forwarding built into your router, but I’m not as familiar with how that works. I’ll try some things and if I find an easy solution, I’ll post it back here.

I actually found this program that can do it. There is a free trial if you want to try it out. https://www.aggsoft.com/tcp-splitter/

This will listen on one port and rebroadcast to two different ports. So have OSC/Pilot send to this program on port xxx1, have TCP splitter listen on xxx1 and rebroadcast onto xxx2 and xxx3. Have your receiver programs listen to ports xxx2 and xxx3. The setting you want in TCP splitter is UDP split.

Good luck!