2011-05-28から1日間の記事一覧

HTTP Client の動作フロー その6 : getaddrinfo()

名前解決には、gethostbyname()ではなく、getaddrinfo()を使えとのことだったので、getaddrinfo()について調べてみた。 getaddrinfo(3) #include <sys/types.h> #include <sys/socket.h> #include <netdb.h> int getaddrinfo(const char *node, const char *service, const struct addrinfo *hint</netdb.h></sys/socket.h></sys/types.h>…

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); //リクエストを送…

HTTP Client の動作フロー その8 : read() でレスポンスを読み込む

write()でHTTPリクエストをサーバに送信したあとは、read()関数でサーバからのHTTPレスポンスを読み込みます。 例 //バッファを空に memset(buf, 0, sizeof(buf)); //レスポンスを受信して出力 do { //バッファ分読み込む n = read(sfd, buf, sizeof(buf)); …