Copyright (C) 2000-2012 |
GNU Info (gawk.info)TCP/IP NetworkingUsing `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 (*note Two-Way Communications with Another Process: Two-way I/O.), it is possible to make a two-way connection to another process on another system across an IP networking 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 `/inet/'. The full syntax of the special file name is `/inet/PROTOCOL/LOCAL-PORT/REMOTE-HOST/REMOTE-PORT'. The meaning of the components are: PROTOCOL The protocol to use over IP. This must be either `tcp', `udp', or `raw', for a TCP, UDP, or raw IP connection, respectively. The use of TCP is recommended for most applications. *Caution:* The use of raw sockets is not currently supported in version 3.1 of `gawk'. 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 pre-defined port number using the C `getservbyname' 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. 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. Note: Top, for a much more complete introduction and discussion, as well as extensive examples. automatically generated by info2www version 1.2.2.9 |