Make robust to dropped connections
- If client drops during server's turn to send message, server detects reset connection after attempting to send message and throws
SocketException - If client drops during client's turn to send message, server immediately receives null message and throws
NullPointerException - If server drops during server's turn to send message, client immediately receives null message and throws
NullPointerException - If server drops during client's turn to send message, client receives null message after attempting to send message and throws
NullPointerException