ciao
sto facendo un porgrammino in ambiente unix che apre una connessione http su un server tramite una socket, fa una richiesta GET e aspetta la risposta, il mio problema è che non so quanti dati aspettare!!!
cioè io non posso sapere a priori quanti dati mi invierà il server, quindi cosa devo fare per restare in ascolto fino a quando il server "non ha finito" di rispondermi?
questo è il codice che uso io ora:
codice:
struct sockaddr_in server;
int sockfd;
sockfd = socket (PF_INET, SOCK_STREAM, 0);
if (sockfd < 0)
{
perror ("socket");
exit(1);
}
bzero ((char*)&server, sizeof(struct sockaddr_in));
server.sin_family = AF_INET;
server.sin_port = htons(80);
if(inet_aton("127.0.0.1",&(server.sin_addr))==0){
perror("impostazione indirizzo..");
exit(1);
}
if (connect(sockfd, (struct sockaddr *)&server, sizeof(server))) {
perror("error connecting..");
exit(1);
}
char[] mieidati="GET /";
if(send(sockfd,mieidati,strlen(mieidati)*sizeof(char),0)<0){
perror("error sending..");
exit(1);
}
/*
.... come faccio la recv?
*/
if(close(sockfd)<0){
perror("error closing..");
exit(1);
}
grazie