[Ninux-Wireless] Pacchetti UDP e rcvfrom

clauz a ninux.org clauz a ninux.org
Gio 22 Lug 2010 11:54:28 CEST


Ciao.
La rcvfrom e' una chiamata bloccante, quindi o usi la sottocitata select
o entri nel fantastico mondo dei thread e della programmazione
concorrente...

Clauz



On 07/22/2010 01:54 AM, ZioPRoTo (Saverio Proto) wrote:
> Consiglio questa lettura:
> http://beej.us/guide/bgnet/output/html/multipage/index.html
> 
> nello specifico:
> http://beej.us/guide/bgnet/output/html/multipage/advanced.html#select
> 
> Saverio
> 
> 
> Il 21 luglio 2010 19.05, Filippo Sallemi <tonyputi a gmail.com> ha scritto:
>> 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 a ml.ninux.org
>> http://ml.ninux.org/mailman/listinfo/wireless
>>
>>
> _______________________________________________
> Wireless mailing list
> Wireless a ml.ninux.org
> http://ml.ninux.org/mailman/listinfo/wireless




Maggiori informazioni sulla lista Wireless