(** Client HTTP/0.9 *)
let http_client machine port path =
  let socket = open_connection machine port in
  let command = Printf.sprintf "GET %s\r\n" path in
  ignore (write socket command 0 (String.length command));
  let buffer_size = 4096 in
  let buffer = String.create buffer_size in
  let rec display () =
    match read socket buffer 0 buffer_size with
      | 0 -> ()
      | nb -> output Pervasives.stdout buffer 0 nbdisplay () in
  display ();;

(** Récupération des arguments *)
let main () =
  if Array.length Sys.argv <> 4 then
    begin
      prerr_endline ("Usage: "^Sys.argv.(0)^" machine port path");
      exit 1
    end
  else
    try
      let adresse = inet_addr_of_name  Sys.argv.(1) in
      let port = port_of_string Sys.argv.(2) in
      http_client adresse port Sys.argv.(3)
    with
      Failure "inet_addr_of_name" ->
        prerr_endline ("Unknown host: "^Sys.argv.(1));
        exit 2
    | Failure "port_of_string" ->
        prerr_endline ("Unknown port: "^Sys.argv.(2));
        exit 3;;

handle_unix_error main ();;