UNIXやDOSコマンド等によく見られるpingを実行するプログラム例です。pingではICMP(Internet Control Message Protocol)というプロトコルを利用し、TCP/IPで接続されたコンピュータやネットワーク機器間で、互いの状態を確認するために用いられます。pingを実行するためのプログラミングでは、ネットワーク間のソケット作成やソケット間の通信を行うため、多少プログラムが複雑になってしまいますが、Windows APIに付属のライブラリ(libwsock32.a)やWindowsに付属のICMP.DLL等を利用すると比較的楽にpingを実現することが可能になります。
以下に例題として、winsock 内の関数とICMP.DLLを利用したping の実行例を取り上げています。双方ともlibwsock32.a へのリンクが必要になるため、コンパイル時には -lwsock32 を追加して下さい。
Gami[624]% cping.exe Pinging localhost [127.0.0.1] with 32 bytes of data: Reply[1] from: 127.0.0.1: bytes=32 time=0ms TTL=128 Reply[2] from: 127.0.0.1: bytes=32 time=0ms TTL=128 Reply[3] from: 127.0.0.1: bytes=32 time=0ms TTL=128 Reply[4] from: 127.0.0.1: bytes=32 time=0ms TTL=128 Reply[5] from: 127.0.0.1: bytes=32 time=0ms TTL=128 |