Can now detect a timeout, and raises an appropriate execption. Also can detect the version number of the packets to send by sending a ping