【コラム】
今回は、なでしこのネットワーク機能を利用して、ネットワーク越しに話ができるチャットソフトを作成します。ここでは、インターネットで使われているTCP/IPを使用してプログラムを作ります。チャットソフト作成を通して、TCP/IPの仕組みが理解できたらいいなぁと思います。
TCP/IPでは、コンピュータ同士をつなげるときに、接続する側と接続される側の2つに役割を分担しておきます。接続を待ち受けるのが「サーバー」で、サーバーに接続しようとするのが「クライアント」です。
Webも、TCP/IPの仕組みの上に成り立っていますので、サーバーとクライアントに役割分担されています。つまり、インターネットエクスプローラなどのWebブラウザがクライアントで、Webページを見るためにサーバーに接続している訳です。
そこで、チャットソフトを作る場合にも、チャット用のクライアントとサーバーの2つを用意する必要があります。
サーバーソフトは、起動させたら、クライアントが接続してくるのを待ち続けます。サーバーを起動するときには、どのポート番号で起動するのかを指定する必要があります。
ポート番号に指定できる番号の範囲は、0から65535までです。ですが、ポート番号の初めの方は、メール(POP3:110番/SMTP:25番)やWeb(HTTP:80番)など、使われている番号が多いので、私たちが勝手に使うとトラブルの元になります。そこで、10000以降の大きな番号を使うと良いでしょう(検索エンジンで「TCP/IP ポート」のキーワードで検索すると、どのポートが何に使われているか調べることができます)。
なでしこでサーバーを起動させるには以下の4行を書きます(ただし、起動させるだけで、何もしません)。
1行目で、TCP/IPの機能を使うために必要な定義ファイルを取り込み、2行目で、サーバーという名前のTCPサーバー部品を作成しています。3行目でポート番号を指定し、4行目で実際にサーバーを起動します。
※注意:このプログラムを起動すると、Windows XPのファイアウォール機能などが働いて、警告ダイアログがでるかもしれません。動作させるには、なでしこの実行ファイルの名前である「vnako.exe」であることを確認して、通信を許可してください。
クライアントソフトは、サーバーに接続しようとします。ネットワーク上には無数のコンピュータがつながっているので、その中から、接続したいコンピュータを指定するために、IPアドレスを利用します。IPアドレスというのは、「192.168.1.12」など0から255までの数値が4つ並んだものです。通常、ネットワークに接続すると、コンピュータには、IPアドレスが割り振られます。
Windows 2000/XPで、自分に割り振られているIPアドレスを調べるには、コマンドラインから「ipconfig」と実行します。これをなでしこで手軽に実行するには、以下のように1行書きます。
![]() |
|
ipconfigを使ってIPアドレスを調べます。私のマシンには、「192.168.1.23」が割り振られていました |
クライアントがサーバーに接続するために必要な情報は、このIPアドレスと、サーバーでも指定したポート番号の、あわせて2つです。
以下は、なでしこで、ただサーバーと接続しようとするだけのクライアントソフトです。
※実行しても何も起こりません。
1行目で、サーバーの時と同様にライブラリを取り込みます。そして、2行目で、TCPクライアント部品を、クライアントという名前で作成します。3行目で、どのポートで通信するのかを指定します。4行目は、接続先サーバーのIPアドレスの指定です。そして、5行目で接続しようとします。
ちなみに、「127.0.0.1」というのは、自分自身を表す特別なアドレスです。自分自身なので、ネットワークのテストなどを行うときに便利に使えます。
では、10行で簡単な通信を行うソフトを作ってみます。まずは、通信を受けるサーバー側からです。先ほどのサーバーソフトのプログラムに、受信した時の処理を2行追加しました。
次にクライアント側です。こちらも、先ほどのクライアントソフトのプログラムに、接続した時の処理(5~6行目)を加えました。
この2つのプログラムを実行するときは、先にサーバーから実行して、次にクライアントを実行してください。すると、サーバー側のメインフォームに「こんにちは」とクライアントから送信したメッセージが表示されるはずです。
![]() |
|
プログラムを実行したところ |
決められたメッセージが表示されるだけでは面白くないので、自分で好きなメッセージを送れるように、クライアント側を改造してみます。
![]() |
|
クライアント側 |
![]() |
|
サーバー側 |
このクライアントプログラムは、サーバーに対してユーザーが入力したメッセージを送信するようになっています。
このプログラムの4行目では、自分自身を表すIPアドレス「127.0.0.1」を指定していますが、ここをネットワーク先のPCのアドレスに変更し、そこでサーバープログラムを起動すれば、ネットワーク先のPCに好きなメッセージを表示させることができます。
ここまでで、TCP/IPの簡単な仕組みと、なでしこでのサーバーとクライアントの利用方法を見てきました。しかし、これではチャットとはいえません。そこで、次回、もう少しチャットらしいプログラムに改造していこうと思います。お楽しみに。
| 【レポート】マカフィーの世界の専門家の意識調査「サイバー防衛報告書」とセキュリティソリューション [21:15 5/25] |
| アップル、Aperture 3.2.4を公開 - バグ修正、安定性向上など [20:51 5/25] |
| 【レポート】GTC 2012 - VGXでエンタープライズ環境でのGPU需要開拓を狙うNVIDIA [20:07 5/25] |
| デル、期間限定キャンペーンに特価アイテム追加、アップグレード無料も継続 [19:41 5/25] |
| 上海問屋、iPhoneとほぼ同じ薄さのバッテリ内蔵ヘッドホンアンプ [19:05 5/25] |
|
[9nine]制服姿見納め? セーラー服で登場も川島海荷「4人はコスプレ」 [19:15 5/27] エンタメ |
|
「NO.6」4巻は書き下ろしドラマCD付、木乃のサイン会も [18:49 5/27] ホビー |
|
[今週の新刊]マンガ大賞3回ノミネート「アイアムアヒーロー」 カープ愛「球場ラヴァーズ」も [18:33 5/27] ホビー |
|
「ゆりてつ」サイン会は作者と都電に揺られるツアー仕立て [17:45 5/27] ホビー |
|
【ネタバレもありの徹底解明コラム】『サザエさん』タマの意外な事実 [17:30 5/27] ホビー |