クライアントプログラムの解説
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()を使って送受信することができます。
|