Original submission added.
This implementation encounters a bug where a -2 character is received by the client upon sending the first command after the start command to the server.
This results in the client being out of sync with the server, but the communications are working basically correctly.