ネットワークプログラミング
WinSock
WinSock 等のネットワーク API を利用したネットワークプログラミングのトピックを取り上げます。
比較的入門的なトピックについては、Windows プログラミング入門の ネットワーク入門に記載しています。 多少重なる部分もあるとおもいますので、両方ともご覧ください。
- 名前解決の方法
名前解決とは www.yahoo.com とか www.microsoft.com などの名前から、IP アドレスを取得する作業のことを指します。通常は DNS サーバや HOSTS ファイルを利用して... - 非同期名前解決ダイアログ
WSAAsyncGetHostByName 関数を使った非同期名前解決の方法をコードで示します。非同期で問い合わせ、返ってきた HOSTENT の中身を表示します。 - ping の作成
Raw Socket (生ソケット) を利用すると Ping のようなプログラムを書くことも容易にできます。本稿では、単純な ping のサンプルコードを示します。通常の ping にはいろいろなオプションがありますが、ここでは最も単純なコードにしました。 - WinSock で簡易パケットキャプチャを作ろう
WinSock の生ソケットを利用することで、パケットキャプチャプログラムを簡単に作成することが出来ます。 - WinSock での IP アドレスとポートの扱い方
WinSock を学ぶときに障害となりやすいのはデータ構造のバリエーションの多さにあると思います。 WSADATA からはじまり、HOSTENT、sockaddr とさまざまな型の構造体が定義されています。これらはさまざまなプロトコルに対応できることのトレードオフとして強いられる複雑さなのですが、 TCP/IP(v4) に限って言えば非常に簡単にまとめることができます。 - WinSock 用ヘルパー関数
ネットワークプログラミングを行うにあたり、データ読み出し用及びデータダンプ用のファンクションを書きました。
ネットワークリストマネージャ
- ネットワーク接続の有無の確認
Network List Manager API を使った最も単純なコード例として、ネットワーク接続の有無をチェックするコードを書きました。
Windows RSS プラットフォーム
- Windows RSS プラットフォームのコンポーネントを使ってみる
Windows RSS プラットフォームを利用する例として、Windows のシステムフィードフォルダ内のエントリを列挙する例を示します。
IP ヘルパー関数
- TCP の統計情報を取得する
ここでは TCP の統計情報を取得します。netstat を使って TCP の統計情報を取得できますが、それと同様の情報です。 - TCP の情報とプロセス ID、プロセス名を取得する
ここでは TCP の情報をプロセス ID 付きで取得する方法を紹介します。また、プロセス ID からプロセス名を取得して便利なコマンドを作ります。 - IP ヘルパー関数の ICMP 関数の使用方法
ICMP Echo のリクエストの送信とリプライの取得を簡易化する関数の使用方法をみてみましょう。
Windows ネットワーク
- ローカルの名前から UNC 名を取得する方法
例えば、ローカルドライブ文字の Z: に \\servername\public という UNC シェア名をマッピングしている状況を考えます。このときに、プログラムに Z: を与え、\\servername\public を取得する方法についてご紹介します。コマンドで言えば、net use で接続一覧を表示したときに、Local から Remote を取得する操作になります。 - リモートシェアに接続する方法
プログラムからネットワークシェア接続用のプロンプトを表示する方法です。 必要に応じてユーザーに接続を問い合わせることが出来ますので、本来接続できるはずのシェアにアクセスを試みたのに失敗して終わり、という事態をある程度避けられます。
HTTP API
- Web サーバの作成 - HTTP API 入門
Web サーバーを作るなんて難しくて良くわからない、という方も多いと思いますが、 Windows には 「Web サーバーを簡単に作る」ための便利な API である、HTTP API があります。これを使えば HTTP に関する基本的な知識さえあれば、Web サーバーを作ることが出来ます。 - HTTP サーバー API 2.0 を試してみよう
HTTP サーバー API のバージョン 2 を使って、上記資料 Web サーバの作成 - HTTP API 入門 のコードを書き換えます。
WinHTTP API
- WinHTTP API を使った単純な HTTP GET リクエストの送信
WinHTTP API を使って単純な HTTP GET リクエストを送信する方法を示します。