Proiect la Retele de calculatoare

9
7/21/2019 Proiect la Retele de calculatoare http://slidepdf.com/reader/full/proiect-la-retele-de-calculatoare 1/9 Proiect - Retele de calculatoare Student: Scarlat Simona Ileana grupa 1068, seria A, Informatica economica Facultatea de Ciernetica, Statistica si Informatica economica

description

Retele de calculatoare

Transcript of Proiect la Retele de calculatoare

Page 1: Proiect la Retele de calculatoare

7/21/2019 Proiect la Retele de calculatoare

http://slidepdf.com/reader/full/proiect-la-retele-de-calculatoare 1/9

Proiect - Retele de

calculatoare

Student: Scarlat Simona Ileana

grupa 1068, seria A, Informatica economica

Facultatea de Ciernetica, Statistica si Informatica economica

Page 2: Proiect la Retele de calculatoare

7/21/2019 Proiect la Retele de calculatoare

http://slidepdf.com/reader/full/proiect-la-retele-de-calculatoare 2/9

Defnirea problemei:

Comunicarea pe internet este bazata pe o pereche de protocoale numite : Internet

Protocol si Transmission Control Protocol, recunoscuta ca TCP/IP.

Pentru ca doua programe sa comunice folosind TCP/IP, fiecare program trebuie sa creeze

un socket, iar acestea trebuie sa fie conectate. Odata ce conexiunea este facuta, comunicarea

se face folosind transferul de date (input si output.

TCP asigura un ser!iciu orientat pe conexiune pentru transmisia fiabila a datelor, cu

detectarea erorilor si controlul fluxului, si detine un mecanism de !alidare "n # faze, acestea

fiind:

$. stabilirea conexiunii (handsha%ing

&. transferul datelor #. eliberarea conexiunii

Programul care creeaza un soc%et ce 'asculta pentru cereri se numeste ser!er, iar

soc%et)ul aferent ser!er)soc%et. Programul care se conecteaza la ser!er se numeste client, iar

soc%et)ul folosit pentru a crea conexiunea se numeste soc%et)client. *cest lucru poarta

denumirea de model client/server.

  In multe aplicatii, ser!er)ul poate accepta conexiuni la mai multi client. Cand un client se

conecteaza la soc%et)ul unui ser!er, acel soc%et continua sa asculte. +er!er)ul are un fir principal(thread care directioneaza soc%et)ul de 'ascultare al ser!er)ului. *cest main thread

functioneaza pe toata durata de executie a programului. Cand acesta primeste o cerere de

conexiune de la un client, firul principal creeaza un nou fir pentru a se ocupa de conexiunea

cu acel client. *cest fir !a functiona doar pe perioada in care clientul sta conectat. Thread)ul

ser!erului si thread)urile create pentru client functioneaza simultan, in paralel.

Page 3: Proiect la Retele de calculatoare

7/21/2019 Proiect la Retele de calculatoare

http://slidepdf.com/reader/full/proiect-la-retele-de-calculatoare 3/9

Enuntul problemeiAm implementat un sistem client ! ser"er in lima#ul de programare C, programul

putand $ folosit pe %inu&' (data ce clientul este conectat si trimite adresa IP

ser"erului, acesta din urma trimite data si ora clientului'

 )e&tul sursa *in C pentru %inu&+ pentru un ser"er care asteapta conectarea unui

client si trimite data si ora curenta'

Modul ServerTCP

include s.s/socet'2

include netinet/in'2

include arpa/inet'2

include stdio'2

include stdli'2

include unistd'2

include errno'2

include string'2

include s.s/t.pes'2

include time'2

int main*int argc, car 3arg"45+

//listenfd este un intreg redenit ca socket analog unui descriptor de sier returnat decatre apelul functiei socket de mai jos

  int listenfd 7 0, connfd 7 0

struct socaddr9in ser"9addr //adresa server 

Page 4: Proiect la Retele de calculatoare

7/21/2019 Proiect la Retele de calculatoare

http://slidepdf.com/reader/full/proiect-la-retele-de-calculatoare 4/9

// zona de memorie ce contine date utile

  car sendu;410<=5

  time9t tics

//atunci cand se apeleaza functia socket(), se creeaza un socket in interiorul nucleului sireturneaza un numar intreg cunoscut sub numele de descriptor socket 

  listenfd 7 socet*AF9I>?), S(C@9S)R?A, 0+

 !sociaza socketului o adresa de server

memset*Bser"9addr, 0, siDeof*ser"9addr++

  memset*sendu;, 0, siDeof*sendu;++

ser"9addr'sin9famil. 7 AF9I>?) //constant pt "pv#

  ser"9addr'sin9addr's9addr 7 tonl*I>AEER9A>+ //contine adresa "P 

ser"9addr'sin9port 7 tons*6808+ //contine numarul portului

 se apeleaza functia bind pentru a specica portul local pentru socket, la acest portserverul va astepta cererea clientului

  ind*listenfd, *struct socaddr3+Bser"9addr, siDeof*ser"9addr++

// plaseaza socket$ul in mod pasiv, apoi in bucla

 functia listen() arata disponibilitatea de a accepta conectari

  listen*listenfd, 10+

Gile*1+

 )ipul interfetei socet'

Cone&iune punct la la punct,

Hu& de date idirectional la

ni"el de octet, li"rare sigura,

Familia de

 )ip intreg pe

>r ma&im de

clienti conectati

Page 5: Proiect la Retele de calculatoare

7/21/2019 Proiect la Retele de calculatoare

http://slidepdf.com/reader/full/proiect-la-retele-de-calculatoare 5/9

Page 6: Proiect la Retele de calculatoare

7/21/2019 Proiect la Retele de calculatoare

http://slidepdf.com/reader/full/proiect-la-retele-de-calculatoare 6/9

Modul Client TCP

 )e&tul sursa *in C pentru %inu&+ pentru un client care transmite adresa IP si

primeste de la ser"er data si ora curenta'

include s.s/socet'2

include s.s/t.pes'2

include netinet/in'2

include netd'2

include stdio'2

include string'2

include stdli'2

include unistd'2

include errno'2

include arpa/inet'2

int main*int argc, car 3arg"45+

  int socfd 7 0, n 7 0

 zona de memorie ce contine date utile

  car rec"u;410<5

//adresa server 

 struct socaddr9in ser"9addr

if*argc O7 <+

Page 7: Proiect la Retele de calculatoare

7/21/2019 Proiect la Retele de calculatoare

http://slidepdf.com/reader/full/proiect-la-retele-de-calculatoare 7/9

 

  printf*KMn Jsage: Ls ip ser"er2 MnK,arg"405+

  return 1

  N

memset*rec"u;, 0,siDeof*rec"u;++

  if**socfd 7 socet*AF9I>?), S(C@9S)R?A, 0++ 0+

 

  printf*KMn ?roare la crearea socet-ului MnK+

  return 1

  N

  printf*KA creat socet-ul''''MnK+

  memset*Bser"9addr, 0, siDeof*ser"9addr++

// preia informatiile despre server 

  ser"9addr'sin9famil. 7 AF9I>?)

  ser"9addr'sin9port 7 tons*6808+

printf*KA preluat informatiile despre ser"er''''MnK+

  if*inet9pton*AF9I>?), arg"415, Bser"9addr'sin9addr+70+

 

  printf*KMn inet9pton error occuredMnK+

  return 1

Page 8: Proiect la Retele de calculatoare

7/21/2019 Proiect la Retele de calculatoare

http://slidepdf.com/reader/full/proiect-la-retele-de-calculatoare 8/9

Page 9: Proiect la Retele de calculatoare

7/21/2019 Proiect la Retele de calculatoare

http://slidepdf.com/reader/full/proiect-la-retele-de-calculatoare 9/9

  return 0

N

Clientul a primit data si

ora de la ser"er