gawkinet: Troubleshooting
2.3 Troubleshooting Connection Problems
=======================================
It may well be that for some reason the program shown in the previous
example does not run on your machine. When looking at possible reasons
for this, you will learn much about typical problems that arise in
network programming. First of all, your implementation of 'gawk' may
not support network access because it is a pre-3.1 version or you do not
have a network interface in your machine. Perhaps your machine uses
some other protocol, such as DECnet or Novell's IPX. For the rest of
this major node, we will assume you work on a Unix machine that supports
TCP/IP. If the previous example program does not run on your machine, it
may help to replace the name 'localhost' with the name of your machine
or its IP address. If it does, you could replace 'localhost' with the
name of another machine in your vicinity--this way, the program connects
to another machine. Now you should see the date and time being printed
by the program, otherwise your machine may not support the 'daytime'
service. Try changing the service to 'chargen' or 'ftp'. This way, the
program connects to other services that should give you some response.
If you are curious, you should have a look at your '/etc/services' file.
It could look like this:
# /etc/services:
#
# Network services, Internet style
#
# Name Number/Protocol Alternate name # Comments
echo 7/tcp
echo 7/udp
discard 9/tcp sink null
discard 9/udp sink null
daytime 13/tcp
daytime 13/udp
chargen 19/tcp ttytst source
chargen 19/udp ttytst source
ftp 21/tcp
telnet 23/tcp
smtp 25/tcp mail
finger 79/tcp
www 80/tcp http # WorldWideWeb HTTP
www 80/udp # HyperText Transfer Protocol
pop-2 109/tcp postoffice # POP version 2
pop-2 109/udp
pop-3 110/tcp # POP version 3
pop-3 110/udp
nntp 119/tcp readnews untp # USENET News
irc 194/tcp # Internet Relay Chat
irc 194/udp
...
Here, you find a list of services that traditional Unix machines
usually support. If your GNU/Linux machine does not do so, it may be
that these services are switched off in some startup script. Systems
running some flavor of Microsoft Windows usually do _not_ support these
services. Nevertheless, it _is_ possible to do networking with 'gawk'
on Microsoft Windows.(1) The first column of the file gives the name of
the service, and the second column gives a unique number and the
protocol that one can use to connect to this service. The rest of the
line is treated as a comment. You see that some services ('echo')
support TCP as well as UDP.
---------- Footnotes ----------
(1) Microsoft preferred to ignore the TCP/IP family of protocols
until 1995. Then came the rise of the Netscape browser as a landmark
"killer application." Microsoft added TCP/IP support and their own
browser to Microsoft Windows 95 at the last minute. They even
back-ported their TCP/IP implementation to Microsoft Windows for
Workgroups 3.11, but it was a rather rudimentary and half-hearted
implementation. Nevertheless, the equivalent of '/etc/services' resides
under 'C:\WINNT\system32\drivers\etc\services' on Microsoft Windows 2000
and Microsoft Windows XP.