Provided by: socket_1.1-10.1_amd64 bug

NAME

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

SYNOPSIS

       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

DESCRIPTION

       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 ``130.149.28.10'') 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 point.

OPTIONS

       -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 accepted.

       -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.

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

EXAMPLES

       The command

              socket -v coma.cs.tu-berlin.de nntp

       connects to the nntp port (port 119) of coma.cs.tu-berlin.de (130.149.28.10).
       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 accepted.

DIAGNOSTICS

       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 signal.

SEE ALSO

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

BUGS

       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.

VERSION

       This manual page describes Socket-1.1.

AUTHOR

       Juergen Nickelsen <nickel@cs.tu-berlin.de>

                                                  Aug  6, 1992                                         SOCKET(1)