The awk programming language was originally developed as a pattern-matching language for writing short programs to perform data manipulation tasks. awk's strength is the manipulation of textual data that is stored in files. It was never meant to be used for networking purposes. To exploit its features in a networking context, it's necessary to use an access mode for network connections that resembles the access of files as closely as possible.
awk is also meant to be a prototyping language. It is used to demonstrate feasibility and to play with features and user interfaces. This can be done with file-like handling of network connections. gawk trades the lack of many of the advanced features of the TCP/IP family of protocols for the convenience of simple connection handling. The advanced features are available when programming in C or Perl. In fact, the network programming in this chapter is very similar to what is described in books such as Internet Programming with Python, Advanced Perl Programming, or Web Client Programming with Perl.
However, you can do the programming here without first having to learn object-oriented ideology; underlying languages such as Tcl/Tk, Perl, Python; or all of the libraries necessary to extend these languages before they are ready for the Internet.
This chapter demonstrates how to use the TCP protocol. The other protocols are much less important for most users (UDP) or even untractable (RAW).