Windows Sockets PING Client Application Release 1 Version 94.10.20 Written by: John A. Junod Internet: 267 Hillwood Street Martinez, GA 30907 Compuserve: 72321,366 This program executable and all source code is released into the public domain. You may use this code for any purpose but please give me a little credit for any use of this code. The primary purpose of this application was to learn what it takes to write a Windows Sockets Application. My development and testing was all completed at home on two 386 PC's using the Trumpet Windows Sockets DLL Alpha 18 with NCSA Telnet and WinQVT/Net 2.6 and 3.9 as the remote host. Source code may be compiled with Borland C++ in large mode. Some code concepts and names are based on code that is copyright by the Regents of the University of California or code published in UNIX Network Programming by W. Richard Stevens or code in WATTCP or other public sources. The rest is based on my knowledge of Windows programming and my interpretation of RFC 969 and the Windows Sockets API version 1.1. This code implements both a blocking and a non-blocking (async) ping. You can specify a hostname (or ip address) on the command line. In that case an Async Ping is performed. Known problems: 1) Many Windows Sockets DLL's do not support the use of RAW_SOCKETS so this application will not work with many implementations. A few that do work are: Trumpet Windows Sockets DLL, Netmanage, FTP Software's PC/TCP, Ipswitch's Acadia, Novell LWP. A couple that DO NOT WORK: Microsoft TCP32, Windows NT. NOTE: When operating on the current Novell TCP/IP 16 bit stack, you may need to set the total number of sockets to 30 (or less) in the TCP kernel in order for WS_PING to work. This is the total of TCP+UDP sockets. 2) "Network subsystem failure" probably means that the ARP request for a local host or default gateway failed. 94.01.20 Increased stack size. Added lookup option. 94.01.22 Fixed name lookup on blocking ping 94.10.20 Fixed time offset in WS_PINGR.C