10. Use check_client() and check_server() for CLI invocation as well, and pass a flag that indicataes whether the parameters were entered through GUI or CLI (also probably create a function to handle printing vs. GUI display).
11. Try to make the ball go between screens.
TODO - Try to use sockaddr_storage instead of sockaddr for everything, since sockaddr is not big enough for IPv6.