(gawk.info.gz) TCP/IP Networking

Info Catalog (gawk.info.gz) Two-way I/O (gawk.info.gz) Advanced Features (gawk.info.gz) Profiling
 
 11.4 Using `gawk' for Network Programming
 =========================================
 
      `EMISTERED':
      A host is a host from coast to coast,
      and no-one can talk to host that's close,
      unless the host that isn't close
      is busy hung or dead.
 
    In addition to being able to open a two-way pipeline to a coprocess
 on the same system ( Two-way I/O), it is possible to make a
 two-way connection to another process on another system across an IP
 network connection.
 
    You can think of this as just a _very long_ two-way pipeline to a
 coprocess.  The way `gawk' decides that you want to use TCP/IP
 networking is by recognizing special file names that begin with one of
 `/inet/', `/inet4/' or `/inet6'.
 
    The full syntax of the special file name is
 `/NET-TYPE/PROTOCOL/LOCAL-PORT/REMOTE-HOST/REMOTE-PORT'.  The
 components are:
 
 NET-TYPE
      Specifies the kind of Internet connection to make.  Use `/inet4/'
      to force IPv4, and `/inet6/' to force IPv6.  Plain `/inet/' (which
      used to be the only option) uses the system default, most likely
      IPv4.
 
 PROTOCOL
      The protocol to use over IP.  This must be either `tcp', or `udp',
      for a TCP or UDP IP connection, respectively.  The use of TCP is
      recommended for most applications.
 
 LOCAL-PORT
      The local TCP or UDP port number to use.  Use a port number of `0'
      when you want the system to pick a port. This is what you should do
      when writing a TCP or UDP client.  You may also use a well-known
      service name, such as `smtp' or `http', in which case `gawk'
      attempts to determine the predefined port number using the C
      `getaddrinfo()' function.
 
 REMOTE-HOST
      The IP address or fully-qualified domain name of the Internet host
      to which you want to connect.
 
 REMOTE-PORT
      The TCP or UDP port number to use on the given REMOTE-HOST.
      Again, use `0' if you don't care, or else a well-known service
      name.
 
      NOTE: Failure in opening a two-way socket will result in a
      non-fatal error being returned to the calling code. The value of
      `ERRNO' indicates the error ( Auto-set).
 
    Consider the following very simple example:
 
      BEGIN {
        Service = "/inet/tcp/0/localhost/daytime"
        Service |& getline
        print $0
        close(Service)
      }
 
    This program reads the current date and time from the local system's
 TCP `daytime' server.  It then prints the results and closes the
 connection.
 
    Because this topic is extensive, the use of `gawk' for TCP/IP
 programming is documented separately.  See  (General
 Introduction)Top gawkinet, TCP/IP Internetworking with `gawk', for a
 much more complete introduction and discussion, as well as extensive
 examples.
 
Info Catalog (gawk.info.gz) Two-way I/O (gawk.info.gz) Advanced Features (gawk.info.gz) Profiling
automatically generated by info2html