Implementing a web client

We will now implement an HTTP web client. This client takes as input a URL. It then attempts to connect to the host and retrieve the resource given by the URL. The program displays the HTTP headers that are sent and received, and it attempts to parse out the requested resource content from the HTTP response.

Our program begins by including the chapter header, chap06.h:

/*web_get.c*/#include "chap06.h"

We then define a constant, TIMEOUT. Later in our program, if an HTTP response is taking more than TIMEOUT seconds to complete, then our program abandons the request. You can define TIMEOUT as you like, but we give it a value of five seconds here:

/*web_get.c continued*/#define TIMEOUT 5.0

Now, please include the entire  ...

Get Hands-On Network Programming with C now with O’Reilly online learning.

O’Reilly members experience live online training, plus books, videos, and digital content from 200+ publishers.