Difference between revisions of "LU-LSP-b12:L10"

From DiLab
Jump to: navigation, search
(New page: == PD #10 - TCP klienta kods == === Uzdevums === Uzrakstīt HTTP protokola klientu, kas konektējās pie web servera, nolasa web lapu un izdrukā uz ''stdout'' tās saturu. Var izmantot...)
 
 
(2 intermediate revisions by the same user not shown)
Line 4: Line 4:


Uzrakstīt HTTP protokola klientu, kas konektējās pie web servera, nolasa web lapu un izdrukā uz ''stdout'' tās saturu.
Uzrakstīt HTTP protokola klientu, kas konektējās pie web servera, nolasa web lapu un izdrukā uz ''stdout'' tās saturu.

Lietošanas piemērs:
./pd10 195.13.158.2
Lietošanas piemērs, kad norāda arī portu:
./pd10 195.13.158.2 80


Var izmantot šīs ''includes'' (un arī citas):
Var izmantot šīs ''includes'' (un arī citas):
Line 20: Line 25:
* ''socket''
* ''socket''
* ''connect''
* ''connect''
* ''send'' vai ''write'' (pēc izvēles)
* ''recv'' vai ''read'' (pēc izvēles)
* ''recv'' vai ''read'' (pēc izvēles)



Latest revision as of 16:45, 4 December 2012

PD #10 - TCP klienta kods

Uzdevums

Uzrakstīt HTTP protokola klientu, kas konektējās pie web servera, nolasa web lapu un izdrukā uz stdout tās saturu.

Lietošanas piemērs:

./pd10 195.13.158.2

Lietošanas piemērs, kad norāda arī portu:

./pd10 195.13.158.2 80

Var izmantot šīs includes (un arī citas):

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <string.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <stdint.h>
#include <netinet/in.h>
#include <arpa/inet.h>

Funkcijas:

  • inet_aton
  • socket
  • connect
  • send vai write (pēc izvēles)
  • recv vai read (pēc izvēles)

HTTP protokola pieprasījuma paraugs: "GET / HTTP/1.0\r\n\r\n"

HTTP protokola atbildes paraugs: "HTTP/1.0 200 OK\r\n\r\n...lapas saturs..."

Jāizdrukā tikai lapas saturs, nevis HTTP protokola galvene!