Aplicație Client-Server TCP
Să se creeze o aplicație Client-Server TCP utilizind Sockets API
Pentru nota 8, 9 si 10:
• Să proiectați și elaborați propriul protocol
Atenție:
• Fiecare client trebuie procesat de către server Intr-un fir de execuție aparte
• Nu se admite aplicații simple de genul Echo Client-Server
• Aplicația poate fi GUI sau consolă
• Pentru cei ce doresc 8, 9 și 10, ca exemplu luați protocoalele HTTP, SMTP unde clientul și
serverul discută printr-un set de reguli bine definite. De exemplu, pentru o aplicație de tip chat
pentru ca clientul să fie identificat de către server acesta trebuie să transmită un mesaj de tipul:
HELLO-REQUEST după care serverul va răspunde cu HELLO-APPROVE. Mai detailat
accesați ultimele 3 referințe de la sfIrșitul acestui fișier.
Intrebări la apărarea laboratorului:
• Ce este un protocol orientat pe conexiune ?
• Ce tipuri de aplicații beneficiază in general de utilizarea protocolului TCP ?
• Cum TCP garantează că datele vor fi transmise cu succes ?
• Diferența dintre blocking si non-blocking sockets
• Diferența dintre blocking multithreaded și non-blocking single thread socket
• Cum are loc procesul TCP Three Way Handshake ?
• Numiti cele 4 apeluri de sistem necesare pentru a crea un server TCP
• Care este rolul metodei bind() ?
• Care este rolul metodei accept() ?
• Ce se intimplă cоnd apelați mai оntоi connect() apoi bind() ?
• Ați avea vreodată nevoie să implementați un timeout intr-un client sau server care utilizează
TCP?
• Intr-o conexiune TCP, clientul sau serverul trimite mai intii datele ?
• Care este adresa de loopback IPv4 și care este rolul ei ?
• De unde știe un sistem de operare ce aplicație este responsabilă pentru un pachet primit din
rețea ?
• Datele primite prin recv() au intotdeauna aceeași dimensiune cu datele trimise cu send() ?
• Este acceptabil să inchei executia programului dacă este detectată o eroare de rețea ?
• Puteți imbunătăți performanța aplicației prin dezactivarea algoritmului Nagle ?
• Ce instrumente listează socket-urile TCP deschise in sistemele de operare Windows și Linux ?
• Tehnici de sincronizare a firelor de execuții
Link-uri utile:
• [Link]
• [Link]
life
• [Link]
designers-part-1-df0c10b86449
• [Link]
• [Link]
sockets
• [Link]
• [Link]
la001/[Link]
• [Link]
• [Link]
• [Link]
• [Link]
a-simple-TCP-Server
• [Link]
• [Link]
• [Link]
• [Link]
• [Link]
• [Link]
• [Link]
Lattrel_App-[Link]
• [Link]