Delphi 2005 プログラミングテクニック Vol.7 |
---|
インターネット編(I) |
著者 | 池田成樹、北山洋幸(協力) |
---|---|
判型 | B5変型,560頁 |
本体価格 5,200円 | |
ISBN | 978-4-87783-145-5 C3004 |
(本書「はじめに」より)
.NET FrameworkではWin32 APIや自作のDLLの関数を呼ぶことができる。プラットフォーム呼び出し(pInvoke)と呼ばれるこの機能は、本書における大きなテーマになった。
もう一つの大きなテーマはIndyコンポーネントである。FTPクライアントのコンポーネントしか取り上げることができなかったが、とても優れたコンポーネントであり、オープンソースなのでネットワークプログラミングのよき教科書でもある。TCP/IPのソケット通信コンポーネントもあるので、第3章もIndyコンポーネントを使うことも可能だったが、あえて .NET Frameworkのクラスを使用した。開発を行う企業やプロジェクトで、「無保証」のコードを利用することを禁じている場合があるからだ。そんな場合に純粋な .NET Frameworkクラスだけでプログラミングしなければいけなくなる。それに加えてTCP/IP通信に関するすべての選択肢を掲示しておきたかった。
(1).NET Framework上のSocketクラスを使う。
(2)既存のクラスライブラリを利用する(今回はIndyコンポーネント)。
(3)WinInet APIをプラットフォーム呼び出し(pInvoke)する。
(4)WinSockをプラットフォーム呼び出し(pInvoke)する。
ただし、(4)のアプローチは割愛している。そこまでするのは現実的でないと考えたからだ。(1)と(2)に関してVisual C++の経験者なら、MFCのCSocketクラスと比較してみて欲しい。あるいはJavaならSocketクラス等だ。
本来は .NET FrameworkはWebサービス等を指向しており、TCP/IPのレイヤーを相手にするべきではない。しかし、「すべて」を提供しなければ一過性の技術に終わってしまうことをマイクロソフトは知り抜いている。そして、その次の手は伝家の宝刀の「OSに統合」である。かつての小生なら、狡猾な手段と一蹴していただろう。だが今ではそれは必然的であり、望ましいものであると思えるようになった。なぜならば、小生が勤め人のときにさんざん臍を噛んできた、「A言語にするかB言語にするか」という問題は、原則論でいえば .NET Framworkでは関係なくなるからだ。OSに統合されるのは大いに結構ではないか。.NET Frameworkがプリインストールされていることになるのだから。
本書によって、読者が「Delphi」、「.NET Framework」、「ネットワークプログラミング」に関してどれかひとつでも収穫が得られるのなら小生としては幸いである。もちろんそのための仕掛けは工夫してあるつもりだ。もっとも、収穫がいくつなら満足なのか、それについては読者の判断に委ねるしかない。
まえがき | |
---|---|
第1部
|
ネットワークプログラミングの基本 1 |
第1章 | ネットワーク概論 |
1.1
|
ネットワークの必要性 |
1.2
|
イーサネット |
1.3
|
ネットワークトポロジー |
1.4
|
MACアドレス |
1.5
|
プロトコル |
1.6
|
プロトコルスタック |
1.7
|
IPアドレス |
1.8
|
Web |
1.9
|
ポート番号 |
1.10
|
ファイヤーウォール |
1.11
|
ネットワーク装置 |
1.12
|
FTP |
第2章
|
ネットワーク情報の取得 |
2.1
|
ネットワーク情報取得プログラム:netInfoProject.bdsproj |
2.2
|
ネットワーク通信量情報取得プログラム:netPerformanceProject.bdsproj |
2.3
|
ipconfigに近いプログラム:ipConfigPorject.bdsproj |
2.4
|
クラスの説明 |
第3章
|
ネットワーク通信 |
3.1
|
TcpListenerとTcpClientを使ったメッセージ通信:msgProject.bdsproj |
3.2
|
Socketクラスを使った同期型通信:SyncServerProject.bdsproj/SyncClientProject.bdsproj |
3.3
|
Socketクラスを使った非同期型通信:ASyncServerProject.bdsproj/ASyncClientProject.bdsproj |
3.4
|
クラスの説明 |
第2部
|
インターネットからのパソコンへのアクセス |
第4章
|
RAS APIによるダイアルアップ−プラットフォーム呼び出し(pInvoke)の利用 |
4.1
|
プラットフォーム呼び出し(pInvoke)によるWindows APIの利用 |
4.2
|
RASエントリーの表示プログラム:RasEnumProject.bdsproj |
4.3
|
RASによるダイアルアッププログラム:RasDialProject.bdsproj |
第5章
|
コンソール形式によるFTPクライアント |
5.1
|
FTPクライアントコンソールプログラム:conftp.bdsproj |
5.2
|
Windows API等の説明 |
第6章
|
GUIによるFTPクライアント−−Indyコンポーネントの利用 |
6.1
|
FTPクライアントプログラム:ftpclient.bdsproj |
6.2
|
FTPクライアントプログラム−−機能追加版:ftpclient.bdsproj |
6.3
|
クラスの説明 |
6.4
|
メインフォームのデザイン:ftpclientForm.nfm |
付録A
|
ManagementObjectSearcherクラスのクエリー文字列クイックレッスン |
付録B
|
便利なネットワークコマンド |
付録C
|
プラットフォーム呼び出し(pInvoke)に関する補足 |
付録D
|
Indyコンポーネントライセンス |
参考文献・資料 | |
索引 |