Ricerca con Ubuntiani Blog

lunedì 5 gennaio 2009

Client TCP

Dopo il server TCP andrò adesso ad implementare un semplice client TCP che si abbina al precedente server per lo scambio di un pacchetto informazioni. Come per il server andremo a complicare la struttura del client per aggiungerne nuove funzioni.

Ecco il codice relativo al client:

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

#define QUEUE_LEN 20
#define BUFF_SIZE 20

int main(int argc, char* argv[])
{
int sk;
int client;
int ret;
struct sockaddr_in s_addr;
struct sockaddr_in c_addr;
char buffer[] = "Sono il client 345.\0";

int port = 2001;
char address[] = "127.0.0.1";

sk = socket(AF_INET, SOCK_STREAM, 0);

bzero(&s_addr, sizeof(s_addr));
s_addr.sin_family = AF_INET;
s_addr.sin_port = htons(port);
s_addr.sin_addr.s_addr = inet_addr(address);

connect(sk, (struct sockaddr*)&s_addr, sizeof(s_addr));

printf("Client Send: %s\n", buffer);
ret = send(sk, buffer, BUFF_SIZE, 0);

ret = recv(sk, buffer, BUFF_SIZE, 0);
printf("Client Receive: %s\n", buffer);

return 1;
}


Come per il server, per poter compilare il client è sufficiente digitare da terminale:

gcc -o client_tcp client_tcp.c

dove client_tcp.c è il nome data al file contenente il codice esposto in precedenza.

Nessun commento: