Before I go spend a lot of time on this, would you appreciate it if I rewrote the network socket calls in ASIO? It would minimize the need for #ifdef's for the networking portions, and ASIO is a very well established, header only, & portable. It allows us to use a single interface for network IO. As a downside it is fairly large, however, I don't mind being responsible for stripping out the headers we don't use. Asio lets us do blocking & non-blocking IO & has many builtins for things like IPv4 vs IPv6 or UDP vs TCP, etc. This would simplify the networking portions of the code, making them easier to maintain in the future.
Before I go spend a lot of time on this, would you appreciate it if I rewrote the network socket calls in ASIO? It would minimize the need for #ifdef's for the networking portions, and ASIO is a very well established, header only, & portable. It allows us to use a single interface for network IO. As a downside it is fairly large, however, I don't mind being responsible for stripping out the headers we don't use. Asio lets us do blocking & non-blocking IO & has many builtins for things like IPv4 vs IPv6 or UDP vs TCP, etc. This would simplify the networking portions of the code, making them easier to maintain in the future.