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 (see 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:
getaddrinfo()
function.
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 (see 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 TCP/IP Internetworking with gawk, which comes as part of the gawk distribution, for a much more complete introduction and discussion, as well as extensive examples.