remove nargs='?'
have the argparse formatter do the defaults info
more encoding annoyances
wrong comment
attempt to handle OSError during sock.shutdown()
attempt to handle ConnectionResetError during sock.recv
attempt to handle BrokenPipeError during sendall

e.g. already disconnected
trivia
handle private messages by replying privately

this makes code nastier, should revisit