socket

SOCKET(1)                   General Commands Manual                  SOCKET(1)



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)