Now that my IPs are propagating, I am attempting to convert my existing 4 private Java proxies to your code. Looks like it is working, but I do have some questions to avoid potential issues. The old proxies were defined by IP address - IP addresses are very tightly controlled, because there's a mix of proxies and Echolink conferences running on the one machine.
My program does not listen on individual addresses. It opens a wildcard socket for each port, receives the traffic and gets the addresses from the OS using special system calls. That way it can run serveral proxies and relays using only very few sockets, improving the efficiency of the select().
You can just move over the existing Java proxies to the C program. Stop the Java proxies and add their addresses to the config file of the C program.
I have no experience with conferences, I do not know if they can co-exist on the same machine with the proxies. Probably not. It is probably best to use a separate (virtual) machine for them. However, I am not sure. It could also be that having the software that opens ports at an explicit address and these wildcard ports can co-exist.
Rob