満月 
 TOP > 講座 > ネットワーク講座 > クライアントプログラミングって何?



広告
 

 クライアントプログラミングって何?

 クライアントは、次のような作法で作ることができます


ソケットの作成

接続

送受信

切断
ソケットの作成

サーバと接続、通信を行うためのソケットを作成します。
接続

使用するソケットと接続先の情報(アドレスとポート番号)を指定して、接続要求を行います。
接続先であるサーバが接続要求受信待ちでなければ、即失敗となります
送受信

ソケットを使って、送受信します。(接続先が一つに確定しているので、サーバのように新たに専用のソケットを作られるようなことはありません。複数のサーバと接続する場合は、ソケットの作成〜切断までの手順を接続したいサーバの分だけ行えばよいです。)
切断

通信をやめる際に明示的にその旨を伝えるために行います。
そうしないとメモリなどの資源が使用されたままの状態になり、無駄が発生します。無駄が積み重なると有限である資源が枯渇することになります。

 クライアントプログラムを書くと以下のようになります。

 上記プログラムは、
・接続要求受信用ソケットを作成(socket())し、アドレスやポート番号などを指定し、接続(connect())します。

・その後、クライアントからのなんらかのメッセージが来るのを待ち、受信(recv())するとそのメッセージを表示(printf())します。

・メッセージ受信後、サーバに対して「おはよう」というメッセージを送信(send())します。

・送信後、通信を切断(closesocket())し、プログラムは終了します。

 サーバとクライアントを起動するには、Windowsのスタートメニューから「Microsoft Visual C++ 2010」を二つ起動し、一方でserverプロジェクトを、もう一方でclientプロジェクトを開いてください。
 では実際に通信させてみましょう。

1.serverプロジェクトで「デバッグなしで開始」を行います。

2..コンソールが表示されてクライアントからの接続要求受付状態で待機します。
 ここまではサーバプログラミングで説明した内容と同じです。

3.clientプロジェクトで「デバッグなしで開始」を行います。

4.サーバ、クライアント、双方のコンソール状態は以下のようになります。

サーバのコンソール


クライアントのコンソール

 いかがでしょうか。「おはよう」を言い合うアプリケーションができました。
 これがもっともシンプルな通信であり、基本はこれで抑えられたと考えていいと思います。

 しかしながら、このぐらいの通信では、あまりにシンプルすぎて、使い道がありません。
 もう少し複雑度を上げて、現実世界で応用が利くようにしていきたいと思います。

 まずは、複数クライアントとの接続を実現していきましょう。>>複数クライアント接続対応って何?


 TOP
 Copyright (c) 2013 Studio Four Dimension. All Rights Reserved.