クライアントのプログラム

  概要   プログラム   解説

クライアントプログラムの解説

socketの作成とサーバのアドレスとポートの情報の設定

まず最初に接続するホストのアドレスとポートを構造体の変数server に設定します.

  bzero((char *)&server,sizeof(server));
  server.sin_family = AF_INET;
  server.sin_port = htons(PORT);
  host = gethostbyname(HOSTNAME);
  bcopy(host->h_addr,(char *)&server.sin_addr,host->h_length);

ホスト名からIPアドレスを得るにはgethostbyname()を使い、 それをbcopy()で構造体に値をセットしています.

IPアドレスの文字列("192.168.0.1"など)からアドレスをセットする 場合は以下のようにします。

  server.sin_addr.s_addr = inet_addr(IP_ADDRESS);

なおクライアントが使うポートはOSが自動的に設定してくれるので 明示的にbind()は行う必要はありません。

サーバへの接続

  s = socket(AF_INET,SOCK_STREAM,0);
  connect(s,&server,sizeof(server));

通信するエンドポイントをsocket()で作成し, connect()を使ってそのソケットをサーバに接続します。

これ以後,read()とwrite()を使って送受信することができます。

FC Labのホームへ 「ネットワークプログラミング」のページへ