Rename the raw socket fd for clarity.
Read listen port, username, and target from the command line.
Look up hosts by name instead of just IP address.
Write partial segments from the next available byte.
Make command line parsing errors match getopt-generated errors.