We should really be using SOCK_STREAM, not SOCK_DGRAM.
Support arbitrary-length command-line lists [fixes #294] [fixes #254]