/*file client1.c */
/* implementazione di client per un server locale con porta 9000*/
#include <stdio.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netdb.h>
#include <netinet/in.h>
#include <stdlib.h>
#define Max 8000
int main(void) {
int sd;
struct sockaddr_in client;
struct hostent *hp; /* risultato della ricerca del nome dell'host */
unsigned short port = 9000;
char buff[Max];
/* Dobbiamo riempire la struttura client ma prima
* ci occorrono alcune
* informazioni che ricaviamo appoggiandoci
* alla struttura hp
*/
// traduco il nome della macchina remota nell'indirizzo IP
hp = gethostbyname("www.dacrema.com");
/* Setto i primi n bytes della stringa passata come primo argomento come bytes nulli.*/
bzero(&client, sizeof(client));
//Inizializzo la sockaddr_in
client.sin_family = AF_INET;
client.sin_port = htons(port);
client.sin_addr.s_addr =((struct in_addr*)(hp->h_addr))->s_addr;
/* Creiamo il socket */
if((sd = socket(AF_INET, SOCK_STREAM, 0)) < 0)
printf("Errore nella creazione del socket!\n");
else
printf("socket creato!\n");
/* connettiamoci all'host */
if (connect(sd, (struct sockaddr *)&client, sizeof(client)) < 0)
printf("Errore di connessione!\n");
/* Inviamo dei dati */
send(sd, "Dati inviati dal client", strlen("Dati inviati dal client")+1, 0);
/*riceviamo la risposta */
recv(sd, buff, sizeof(buff), 0);
printf("Risposta del server: %s\n", buff);
close(sd);
return EXIT_SUCCESS;
}
Tutto quanto riportato in questa pagina č a puro scopo informativo personale. Se non ti trovi in accordo con quanto riportato nella pagina, vuoi fare delle precisazioni, vuoi fare delle aggiunte o hai delle proposte e dei consigli da dare, puoi farlo mandando un email. Ogni indicazione č fondamentale per la continua crescita del sito.