select.select() used to stop multiple networks blocking each other. Various bug fixes and sanity checks as well