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:
graziecodice: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); }

Rispondi quotando