usage:  sock [ options ] <host>  <port>              (for client; default)
          sock [ options ] -s [ <IPaddr> ] <port>     (for server)
          sock [ options ] i   <host>   <port>           (for "source" client)
          sock [ options ] -i  -s [ <IPaddr> ] <port>  (for "sink" server)


options:

 

        -b n  bind n as client's local port number
         -c    convert newline to CR/LF & vice versa
         -f a.b.c.d.p  foreign IP address = a.b.c.d, foreign port# = p
         -h    issue TCP half close on standard input EOF
         -i    "source" data to socket, "sink" data from socket (w/-s)
         -n n  #buffers to write for "source" client (default 1024)
         -p n  #seconds to pause before each read or write (source/sink)
         -q n  size of listen queue for TCP server (default 5)
         -r n  #bytes per read() for "sink" server (default 1024)
         -s    operate as server instead of client
         -u    use UDP instead of TCP
         -v    verbose
         -w n  #bytes per write() for "source" client (default 1024)
         -A    SO_REUSEADDR option
         -B    SO_BROADCAST option
         -C    set terminal to cbreak mode
         -D    SO_DEBUG option
         -E    IP_RECVDSTADDR option
         -F    fork after connection accepted (TCP concurrent server)
         -K    SO_KEEPALIVE option
         -L n  SO_LINGER option, n = linger time
         -N    TCP_NODELAY option
         -O n  #seconds to pause after listen, but before first accept
         -P n  #seconds to pause before first read or write (source/sink)
         -Q n  #seconds to pause after receiving FIN, but before close
         -R n  SO_RCVBUF option
         -S n  SO_SNDBUF option
         -U n  enter urgent mode after write number n (source only)