HTTP Client の動作フロー その7 : write() でリクエストを送る

connect()で接続ができたら、write()関数でリクエストを送ります。

char buf[1024];
char *host; //ホスト名

host = "localhost";

/* 中略 */

//送信内容を作成
snprintf(buf, sizeof(buf), "GET / HTTP/1.0\r\nHost: %s\r\r\n", host);
	
//リクエストを送信
write(sfd, buf, strlen(buf)); //sfdはsocket()で取得したファイルディスクリプション

ここではsnprintf()関数を使って下記のようなHTTPリクエストを作成して、write()関数でサーバに送信しています。

GET / HTTP/1.0
Host: localhost

追記 20110529

HTTP/1.1だと「Transfer-Encoding: chunked」に対応しないといけなくなるため、プロトコルをHTTP/1.0に変更。