Ghid utilizare programe Client-Server TCP în C
1. Descriere
Aceste două programe realizează o comunicare simplă între un client și un server folosind protocolul TCP:
- Serverul ascultă pe un port specific (12345), așteaptă conexiuni de la clienți, primește un mesaj text, apoi îl trimite înapoi clientului (funcție echo).
- Clientul se conectează la server, trimite un text citit de la tastatură, apoi afișează mesajul primit înapoi de la server.
2. Compilare
După ce ai codul sursă pentru client și server salvat în fișiere client.c
și server.c
, compilează-le folosind:
gcc server.c -o server
– compilarea programului server
gcc client.c -o client
– compilarea programului client
3. Rulare
- Pornește mai întâi serverul rulând comanda:
./server
Serverul va afișa un mesaj că ascultă pe portul 12345 și va aștepta conexiuni.
- Într-un alt terminal, pornește clientul cu:
./client
Clientul va încerca să se conecteze la server.
- Clientul va afișa promptul „Introduceti text:” unde poți tasta un mesaj și apoi apăsa Enter.
- Mesajul trimis va fi receptionat și returnat de server, iar clientul îl va afișa.
4. Funcționare și comportament
- Serverul este un program iterativ, acceptând clienți unul câte unul, procesând mesajele și apoi închizând conexiunea cu fiecare client.
- Clientul se conectează la server, trimite un mesaj și primește răspunsul înapoi.
- Promptul clientului este afișat corect folosind
fgets
, ceea ce evită blocarea la citirea inputului.
5. Sfaturi și recomandări
- Asigură-te că serverul este pornit înainte de a rula clientul.
- Verifică dacă portul 12345 este liber și nu este blocat de firewall.
- Clientul și serverul trebuie să ruleze pe aceeași mașină sau pe mașini care pot comunica prin rețea.
- În cazul unui IP diferit al serverului, modifică în cod adresa IP în variabila SERVER din client.
Notă: Dacă clientul pare să "înghețe" fără să afișeze promptul, asigură-te că executabilul clientului este actualizat cu varianta corectă care folosește fgets
și fflush(stdout)
pentru afișarea promptului.