Ciao ragazzi, sto giocherellando un po con C e stavo provando a scrivere un piccolo programma che manda pacchetti UDP ad un host solo che ho notato che la funzione rcvfrom resta bloccata finchè il server non manda una risposta anche vuota.
Parte del codice esegue questo: read = sendto(sock, str, strlen(str), 0, (struct sockaddr *)&addr, sizeof(addr)); if (read < 0) { perror("Request error"); return -1; } read = recvfrom(sock, buffer, MAXLINE, 0, NULL, NULL); if (read < 0) { perror("Read error"); return -1; } /** * Print results **/ if (read > 0) { buffer[read]=0; if (fputs(buffer, stdout) == EOF) { perror("fputs error"); return -1; } } Ho provato a usare le fnctl per impostare la socket in modo non bloccante ma ottengo solo l'uscita dal programma e nessun invio di pacchetti. Adesso non è che mi importi tanto avere una risposta dal server e potrei ovviare al problema eliminando la parte di codice dove aspetto risposta, ma la mia curiosità dal punto di vista didattico rimane. Qualcuno saprebbe illuminarmi in qualche modo? Grazie Ciao -- Filippo Sallemi
_______________________________________________ Wireless mailing list Wireless@ml.ninux.org http://ml.ninux.org/mailman/listinfo/wireless