Provided by: socket_1.1-10build1_amd64 bug


       socket - create a TCP or a UNIX domain socket and connect to stdin/out


       socket [ -bcfqrvw ] [ -p command ] [ -B local address ] host port
       socket [ -bcfqrvw ] [ -p command ] /path
       socket [ -bcfqrvw ] [ -p command ] [ -B local address ] -s [ -l ] port
       socket [ -bcfqrvw ] [ -p command ] -s [ -l ] /path


       Socket  creates  an  Internet domain TCP or a UNIX domain stream socket and connects it to
       stdin and stdout.  The host argument can be  an  Internet  number  in  dot-notation  (like
       ``'')  or a domain name. In this case it must be possible to resolve the name
       to a valid Internet address with gethostbyname(3).  The port argument can be a port number
       or  a  service  name which can be mapped to a port number by getservbyname(3).  If an UNIX
       domain socket is wanted to be created instead of an  Internet  socket,  specify  the  path
       instead  of  an  internet  (canonical  domain named or dot-notated) host.  The hostname is
       treated as a pathname if contains at least a single slash. I.e. if one wants to create  or
       connect  to  a  socket  in the current directory, use ./filename to specify the connection


       -b (background)
              The program forks itself into the background, detaches from  its  controlling  tty,
              closes  the  file  descriptors  associated  with  the  tty, and changes its current
              directory to the root directory.

       -B (local address)
              This option specifies which local address to binded to when making a connection.

       -c (crlf)
              Linefeed characters (LF) are converted  to  a  Carriage  Return  Linefeed  sequence
              (CRLF)  when  written  to  the  socket.   CRLF  sequences  read from the socket are
              converted to a single LF.

       -f (fork)
              When a server connection has been accepted, a separate process is forked to  handle
              the connection in background.

       -l (loop)
              (only  valid  with  -s)  After  a connection has been closed, another connection is

       -p (program)
              The specified command is executed for each connection. Its standard input, standard
              output,  and  standard  error channels are connected to the socket.  Command can be
              any shell command since it is passed to /bin/sh.

       -q (quit)
              The connection is closed when an end-of-file condition occurs on standard input.

       -r (read only)
              No data is read from standard input and written to the socket.

       -s (server)
              A server socket is created.  A  hostname  argument  is  not  required  of  Internet
              sockets, only the port number but a pathname is required for UNIX domain sockets.

       -v (verbose)
              Messages about connections etc. are issued to stderr.

       -w (write only)
              No data is read from the socket and written to the standard output.

              Socket  prints  its  version ID and terminates.  This must be the first argument to
              have an effect.


       The command

              socket -v nntp

       connects to the nntp port (port 119) of (
       The command

              socket -sl 3425

       creates a server socket on port 3425 on the local host and waits for a connection.   After
       a connection has been closed, a new connection is accepted.
       The command

              socket -wslqvp "echo Socket! " 1938

       creates a server socket on port 1938 on the local host and waits for a connection.  When a
       connection is accepted, the string "Socket!" is written to the socket.  No  data  is  read
       from  the socket and written to the finger program.  The connection is closed when an end-
       of-file condition at the standard output of the program  occurs.  Then a new connection is


       Lots of diagnostics for failed system calls.

       unknown host host
              host's address could not be resolved.

       Signal signal caught, exiting
              Socket exits on any signal other than SIGTSTP, SIGCONT, SIGCLD, SIGQUIT.

       A  non-zero  exit  code  is  returned  if socket terminates due to an error condition or a


       ip(7),  tcp(7),   unix(7),   accept(2),   bind(2),   listen(2),   connect(2),   socket(2),
       gethostbyname(3), getservbyname(3)


       socket  -p  terminates  due  to  a  SIGPIPE signal when there is more data from the socket
       available than the executed program wants to read.

       Please report any other bugs to the author.


       This manual page describes Socket-1.1.


       Juergen Nickelsen <>

                                           Aug  6, 1992                                 SOCKET(1)