Re: [Ninux-Wireless] Pacchetti UDP e rcvfrom

2010-07-26 Per discussione Filippo Sallemi
La grafica non è delle migliori e purtroppo è stato realizzato in tempi
record.

http://www.internetfree4u.org

Ciao

Il giorno 26 luglio 2010 08.43, ZioPRoTo (Saverio Proto) ziopr...@gmail.com
 ha scritto:

  Con questo voglio dire che i nodi non sono in lan con il server, quindi è
  possibile utilizzare snmp su questo scenario senza installare VPN? Se si
  avreste qualche doc che spieghi come configurare nodi e server?

 Basta che ci sia connettività IP tra il server ed i nodi da monitorare.

  P.S. La rete al mare sta riuscuotendo un notevole succcesso, dunque per
  ringraziare la comunità del supporto sarei ben felice di mettere un link
 a
  ninux sul sito dell'associazione.

 Non credo ci siano problemi, poi mandaci il link del sito
 dell'associazione così ce lo guardiamo !

 Saverio
 ___
 Wireless mailing list
 Wireless@ml.ninux.org
 http://ml.ninux.org/mailman/listinfo/wireless




-- 
Filippo Sallemi
___
Wireless mailing list
Wireless@ml.ninux.org
http://ml.ninux.org/mailman/listinfo/wireless


Re: [Ninux-Wireless] Pacchetti UDP e rcvfrom

2010-07-26 Per discussione ZioPRoTo (Saverio Proto)
 La grafica non è delle migliori e purtroppo è stato realizzato in tempi 
 record.
 http://www.internetfree4u.org

ma dove sta il link a Ninux ?

Saverio
___
Wireless mailing list
Wireless@ml.ninux.org
http://ml.ninux.org/mailman/listinfo/wireless


Re: [Ninux-Wireless] Pacchetti UDP e rcvfrom

2010-07-26 Per discussione Filippo Sallemi
Comunque adesso il link è messo in tutte le pagine sul powered by in quanto
senza la comunità ninux di certo non saremmo riusciti a tirare su questa
cosa.

Ciao

Il giorno 26 luglio 2010 11.11, Filippo Sallemi tonyp...@gmail.com ha
scritto:

 prima di metterlo ho chiesto se potevo metterlo...


 Il giorno 26 luglio 2010 11.09, ZioPRoTo (Saverio Proto) 
 ziopr...@gmail.com ha scritto:

  La grafica non è delle migliori e purtroppo è stato realizzato in tempi
 record.
  http://www.internetfree4u.org

 ma dove sta il link a Ninux ?

 Saverio
 ___
 Wireless mailing list
 Wireless@ml.ninux.org
 http://ml.ninux.org/mailman/listinfo/wireless




 --
 Filippo Sallemi




-- 
Filippo Sallemi
___
Wireless mailing list
Wireless@ml.ninux.org
http://ml.ninux.org/mailman/listinfo/wireless


Re: [Ninux-Wireless] Pacchetti UDP e rcvfrom

2010-07-26 Per discussione ZioPRoTo (Saverio Proto)
 sono indeciso tra snmp-static e snmp-utils

snmp-static è il pacchetto server compilato staticamente che non ha
bisogno di snmp-libs

snmp-utils sono le utility client per interrogare i servers snmp,
queste di solito sull'AP non ti servono

Saverio
___
Wireless mailing list
Wireless@ml.ninux.org
http://ml.ninux.org/mailman/listinfo/wireless


Re: [Ninux-Wireless] Pacchetti UDP e rcvfrom

2010-07-26 Per discussione Filippo Sallemi
Ok, ma se i miei nodi con snmp-static sono dietro nat come fanno ad essere
interrogati?
Non dovrebbero essere i nodi a mandare il loro stato alla macchina con
snmp-utils?

Scusate per le domande idiote ma ho qualche problema a capire questa cosa.

Ciao

Il giorno 26 luglio 2010 12.15, ZioPRoTo (Saverio Proto) ziopr...@gmail.com
 ha scritto:

  Ok, quindi se non ho capito male su ogni nodo metto snmp-static e
 snmp-utils
  deve essere installato sulla macchina che interroga i nodi giusto?

 si

 Saverio
 ___
 Wireless mailing list
 Wireless@ml.ninux.org
 http://ml.ninux.org/mailman/listinfo/wireless




-- 
Filippo Sallemi
___
Wireless mailing list
Wireless@ml.ninux.org
http://ml.ninux.org/mailman/listinfo/wireless


Re: [Ninux-Wireless] Pacchetti UDP e rcvfrom

2010-07-26 Per discussione ZioPRoTo (Saverio Proto)
 Ok, ma se i miei nodi con snmp-static sono dietro nat come fanno ad essere
 interrogati?
 Non dovrebbero essere i nodi a mandare il loro stato alla macchina con
 snmp-utils?

 Scusate per le domande idiote ma ho qualche problema a capire questa cosa.

allora funziona così:

tutti i nodi hanno un server snmp che da informazioni su quello che
succede su quel nodo.

c'è un server che ha un poller, ovvero un client che periodicamente
contatta tutti i nodi

devi avere connettività IP in modo che il poller possa raggiungere i
nodi da monitorare.

guarda la documentazione di cacti, ci sono più dettagli per capire

Saverio
___
Wireless mailing list
Wireless@ml.ninux.org
http://ml.ninux.org/mailman/listinfo/wireless


Re: [Ninux-Wireless] Pacchetti UDP e rcvfrom

2010-07-22 Per discussione clauz
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 tonyp...@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@ml.ninux.org
 http://ml.ninux.org/mailman/listinfo/wireless


 ___
 Wireless mailing list
 Wireless@ml.ninux.org
 http://ml.ninux.org/mailman/listinfo/wireless

___
Wireless mailing list
Wireless@ml.ninux.org
http://ml.ninux.org/mailman/listinfo/wireless


Re: [Ninux-Wireless] Pacchetti UDP e rcvfrom

2010-07-22 Per discussione Filippo Sallemi
Vi ringrazio per il supporto ragazzi, ed è tutto molto interessante.
Il motivo per cui sto scrivendo questo piccolissimo software è perchè vorrei
avere un heartbeat dei nodi da mandare ad un server, per il solo scopo di
tenere sotto controllo lo stato dei nodi in tempo più reale possibile ma
senza compromettere la banda.

In verità penso che sia solo sufficiente mandare un beat al server e non
ricvere nulla nel caso specifico, ovviamente però potrei sbaglairmi o non
tenere conto di qualcosa che magari mi sfugge.

So programmare in concorrenza, ma purtroppo la mia poca esperienza di
concorrenza viene da mondo java universitario.

Se pensate che quello che sto facendo sia inutile o interesante vi prego di
farmelo sapere non voglio reinventare l'acqua calda.

Ciao e grazie ancora

Il giorno 22 luglio 2010 11.54, cl...@ninux.org ha scritto:

 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 tonyp...@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@ml.ninux.org
  http://ml.ninux.org/mailman/listinfo/wireless
 
 
  ___
  Wireless mailing list
  Wireless@ml.ninux.org
  http://ml.ninux.org/mailman/listinfo/wireless

 ___
 Wireless mailing list
 Wireless@ml.ninux.org
 http://ml.ninux.org/mailman/listinfo/wireless




-- 
Filippo Sallemi
___
Wireless mailing list
Wireless@ml.ninux.org
http://ml.ninux.org/mailman/listinfo/wireless


Re: [Ninux-Wireless] Pacchetti UDP e rcvfrom

2010-07-22 Per discussione Michele Favara Pedarsi
Di heartbeat ce ne sono a iosa; da semplici script che pingano a soluzioni
complesse. Cerca prima di sviluppare l'ennesima tecnologia apposita... anche
perche' stai facendo un sistema di monitoraggio, e come tale ha bisogno di
essere affidabile; se te lo fai da solo rischi di affidarti ad una cosa che
per essere affidabile deve prima fallire qualche volta per trovare i bug...
a meno che non applichi i modelli di sviluppo piu' rigidi, con i tempi che
questi comportano...

Una via di mezzo potrebbe essere quella di impiegare un qualsiasi socket
server multithreaded generico gia' sviluppato - ie: esente da bachi - a cui
devi aggiungere solo quella pochissima logica che verifica l'arrivo di un
pacchetto ogni x secondi da y IP.

ciao

Michele



Il giorno 22 luglio 2010 14.37, Filippo Sallemi tonyp...@gmail.com ha
scritto:

 Vi ringrazio per il supporto ragazzi, ed è tutto molto interessante.
 Il motivo per cui sto scrivendo questo piccolissimo software è perchè
 vorrei avere un heartbeat dei nodi da mandare ad un server, per il solo
 scopo di tenere sotto controllo lo stato dei nodi in tempo più reale
 possibile ma senza compromettere la banda.

 In verità penso che sia solo sufficiente mandare un beat al server e non
 ricvere nulla nel caso specifico, ovviamente però potrei sbaglairmi o non
 tenere conto di qualcosa che magari mi sfugge.

 So programmare in concorrenza, ma purtroppo la mia poca esperienza di
 concorrenza viene da mondo java universitario.

 Se pensate che quello che sto facendo sia inutile o interesante vi prego di
 farmelo sapere non voglio reinventare l'acqua calda.

 Ciao e grazie ancora

 Il giorno 22 luglio 2010 11.54, cl...@ninux.org ha scritto:

 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 tonyp...@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@ml.ninux.org
  http://ml.ninux.org/mailman/listinfo/wireless
 
 
  ___
  Wireless mailing list
  Wireless@ml.ninux.org
  http://ml.ninux.org/mailman/listinfo/wireless

 ___
 Wireless mailing list
 Wireless@ml.ninux.org
 http://ml.ninux.org/mailman/listinfo/wireless




 --
 Filippo Sallemi

 ___
 Wireless mailing list
 Wireless@ml.ninux.org
 http://ml.ninux.org/mailman/listinfo/wireless


___
Wireless mailing list
Wireless@ml.ninux.org
http://ml.ninux.org/mailman/listinfo/wireless


Re: [Ninux-Wireless] Pacchetti UDP e rcvfrom

2010-07-22 Per discussione Antonio Anselmi
perche' non usare TCP? con UDP spari e speri che il beat arrivi a
destinazione, senza alcuna info sullo stato della connesiione

Antonio

Il 22 luglio 2010 14.45, Michele Favara Pedarsi m...@meganetwork.org
ha scritto:
 Di heartbeat ce ne sono a iosa; da semplici script che pingano a soluzioni
 complesse. Cerca prima di sviluppare l'ennesima tecnologia apposita... anche
 perche' stai facendo un sistema di monitoraggio, e come tale ha bisogno di
 essere affidabile; se te lo fai da solo rischi di affidarti ad una cosa che
 per essere affidabile deve prima fallire qualche volta per trovare i bug...
 a meno che non applichi i modelli di sviluppo piu' rigidi, con i tempi che
 questi comportano...

 Una via di mezzo potrebbe essere quella di impiegare un qualsiasi socket
 server multithreaded generico gia' sviluppato - ie: esente da bachi - a cui
 devi aggiungere solo quella pochissima logica che verifica l'arrivo di un
 pacchetto ogni x secondi da y IP.

 ciao

 Michele



 Il giorno 22 luglio 2010 14.37, Filippo Sallemi tonyp...@gmail.com ha
 scritto:

 Vi ringrazio per il supporto ragazzi, ed è tutto molto interessante.
 Il motivo per cui sto scrivendo questo piccolissimo software è perchè
 vorrei avere un heartbeat dei nodi da mandare ad un server, per il solo
 scopo di tenere sotto controllo lo stato dei nodi in tempo più reale
 possibile ma senza compromettere la banda.

 In verità penso che sia solo sufficiente mandare un beat al server e non
 ricvere nulla nel caso specifico, ovviamente però potrei sbaglairmi o non
 tenere conto di qualcosa che magari mi sfugge.

 So programmare in concorrenza, ma purtroppo la mia poca esperienza di
 concorrenza viene da mondo java universitario.

 Se pensate che quello che sto facendo sia inutile o interesante vi prego
 di farmelo sapere non voglio reinventare l'acqua calda.

 Ciao e grazie ancora

 Il giorno 22 luglio 2010 11.54, cl...@ninux.org ha scritto:

 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 tonyp...@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@ml.ninux.org
  http://ml.ninux.org/mailman/listinfo/wireless
 
 
  ___
  Wireless mailing list
  Wireless@ml.ninux.org
  http://ml.ninux.org/mailman/listinfo/wireless

 ___
 Wireless mailing list
 Wireless@ml.ninux.org
 http://ml.ninux.org/mailman/listinfo/wireless



 --
 Filippo Sallemi

 ___
 Wireless mailing list
 Wireless@ml.ninux.org
 http://ml.ninux.org/mailman/listinfo/wireless



 ___
 Wireless mailing list
 Wireless@ml.ninux.org
 http://ml.ninux.org/mailman/listinfo/wireless


___
Wireless mailing list
Wireless@ml.ninux.org
http://ml.ninux.org/mailman/listinfo/wireless


Re: [Ninux-Wireless] Pacchetti UDP e rcvfrom

2010-07-22 Per discussione Filippo Sallemi
Sono daccordissimo con te Michele, non ho proprio voglia di reinventare
l'acqua calda anche se in verità il programmino con il suo ciclo di vita
dovrebbe essere abbastanza facile da implementare e con pochi rischi di
fallimento.

In verità avrei voluto usare snmp per questo genere di cose ma non so se in
realtà è la scelta giusta.

La scelta di UDP dipende da due fattori:

   1. Usare minor banda possibile;
   2. Non mi interessa se perdo qualche pacchetto, mi interessa solo dire
   hei ci sono ogni tot secondi, dove tot è un numero veramente basso.

Il software è pensato per una serie di applicazioni lato server e
sicuramente non è sufficiente per fare monitoring dei nodi, ma rappresenta
un inizio...

Filippo


Il giorno 22 luglio 2010 16.42, Antonio Anselmi tony.anse...@gmail.com ha
scritto:

 perche' non usare TCP? con UDP spari e speri che il beat arrivi a
 destinazione, senza alcuna info sullo stato della connesiione

 Antonio

 Il 22 luglio 2010 14.45, Michele Favara Pedarsi m...@meganetwork.org
 ha scritto:
  Di heartbeat ce ne sono a iosa; da semplici script che pingano a
 soluzioni
  complesse. Cerca prima di sviluppare l'ennesima tecnologia apposita...
 anche
  perche' stai facendo un sistema di monitoraggio, e come tale ha bisogno
 di
  essere affidabile; se te lo fai da solo rischi di affidarti ad una cosa
 che
  per essere affidabile deve prima fallire qualche volta per trovare i
 bug...
  a meno che non applichi i modelli di sviluppo piu' rigidi, con i tempi
 che
  questi comportano...
 
  Una via di mezzo potrebbe essere quella di impiegare un qualsiasi socket
  server multithreaded generico gia' sviluppato - ie: esente da bachi - a
 cui
  devi aggiungere solo quella pochissima logica che verifica l'arrivo di un
  pacchetto ogni x secondi da y IP.
 
  ciao
 
  Michele
 
 
 
  Il giorno 22 luglio 2010 14.37, Filippo Sallemi tonyp...@gmail.com ha
  scritto:
 
  Vi ringrazio per il supporto ragazzi, ed è tutto molto interessante.
  Il motivo per cui sto scrivendo questo piccolissimo software è perchè
  vorrei avere un heartbeat dei nodi da mandare ad un server, per il solo
  scopo di tenere sotto controllo lo stato dei nodi in tempo più reale
  possibile ma senza compromettere la banda.
 
  In verità penso che sia solo sufficiente mandare un beat al server e non
  ricvere nulla nel caso specifico, ovviamente però potrei sbaglairmi o
 non
  tenere conto di qualcosa che magari mi sfugge.
 
  So programmare in concorrenza, ma purtroppo la mia poca esperienza di
  concorrenza viene da mondo java universitario.
 
  Se pensate che quello che sto facendo sia inutile o interesante vi prego
  di farmelo sapere non voglio reinventare l'acqua calda.
 
  Ciao e grazie ancora
 
  Il giorno 22 luglio 2010 11.54, cl...@ninux.org ha scritto:
 
  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 tonyp...@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@ml.ninux.org
   http://ml.ninux.org/mailman/listinfo/wireless
  
  
   ___
   Wireless mailing list
   Wireless@ml.ninux.org
   

Re: [Ninux-Wireless] Pacchetti UDP e rcvfrom

2010-07-22 Per discussione Filippo Sallemi
Per completezza, quello che dice Antonio è giusto, ma è utilie nella
situazione immediatamente successiva, ovvero inviare l'intero stato (o altre
info) del nodo ad un entità centrale, per cui è necessario essere certi che
arrivi e magari ricevere una risposta (robin update).
In generale io vedo come unica informazione del beat, il nodo che lo sta
mandando e nient'altro.

ovviamente la parte server collezionerà una serie di pacchetti beat in
base ai quali saprà se il nodo c'è oppure no.

Magari mi sbaglio ma a me pare cristallino.

Ciao

Il giorno 22 luglio 2010 16.47, Filippo Sallemi tonyp...@gmail.com ha
scritto:

 Sono daccordissimo con te Michele, non ho proprio voglia di reinventare
 l'acqua calda anche se in verità il programmino con il suo ciclo di vita
 dovrebbe essere abbastanza facile da implementare e con pochi rischi di
 fallimento.

 In verità avrei voluto usare snmp per questo genere di cose ma non so se in
 realtà è la scelta giusta.

 La scelta di UDP dipende da due fattori:

1. Usare minor banda possibile;
2. Non mi interessa se perdo qualche pacchetto, mi interessa solo dire
hei ci sono ogni tot secondi, dove tot è un numero veramente basso.

 Il software è pensato per una serie di applicazioni lato server e
 sicuramente non è sufficiente per fare monitoring dei nodi, ma rappresenta
 un inizio...

 Filippo


 Il giorno 22 luglio 2010 16.42, Antonio Anselmi tony.anse...@gmail.comha 
 scritto:

 perche' non usare TCP? con UDP spari e speri che il beat arrivi a
 destinazione, senza alcuna info sullo stato della connesiione

 Antonio

 Il 22 luglio 2010 14.45, Michele Favara Pedarsi m...@meganetwork.org
 ha scritto:
  Di heartbeat ce ne sono a iosa; da semplici script che pingano a
 soluzioni
  complesse. Cerca prima di sviluppare l'ennesima tecnologia apposita...
 anche
  perche' stai facendo un sistema di monitoraggio, e come tale ha bisogno
 di
  essere affidabile; se te lo fai da solo rischi di affidarti ad una cosa
 che
  per essere affidabile deve prima fallire qualche volta per trovare i
 bug...
  a meno che non applichi i modelli di sviluppo piu' rigidi, con i tempi
 che
  questi comportano...
 
  Una via di mezzo potrebbe essere quella di impiegare un qualsiasi socket
  server multithreaded generico gia' sviluppato - ie: esente da bachi - a
 cui
  devi aggiungere solo quella pochissima logica che verifica l'arrivo di
 un
  pacchetto ogni x secondi da y IP.
 
  ciao
 
  Michele
 
 
 
  Il giorno 22 luglio 2010 14.37, Filippo Sallemi tonyp...@gmail.com ha
  scritto:
 
  Vi ringrazio per il supporto ragazzi, ed è tutto molto interessante.
  Il motivo per cui sto scrivendo questo piccolissimo software è perchè
  vorrei avere un heartbeat dei nodi da mandare ad un server, per il solo
  scopo di tenere sotto controllo lo stato dei nodi in tempo più reale
  possibile ma senza compromettere la banda.
 
  In verità penso che sia solo sufficiente mandare un beat al server e
 non
  ricvere nulla nel caso specifico, ovviamente però potrei sbaglairmi o
 non
  tenere conto di qualcosa che magari mi sfugge.
 
  So programmare in concorrenza, ma purtroppo la mia poca esperienza di
  concorrenza viene da mondo java universitario.
 
  Se pensate che quello che sto facendo sia inutile o interesante vi
 prego
  di farmelo sapere non voglio reinventare l'acqua calda.
 
  Ciao e grazie ancora
 
  Il giorno 22 luglio 2010 11.54, cl...@ninux.org ha scritto:
 
  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 tonyp...@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 

Re: [Ninux-Wireless] Pacchetti UDP e rcvfrom

2010-07-22 Per discussione Antonio Anselmi
in questo caso credo che sul server ci sia una specie di tolleranza,
nel senso che se non ricevo beat per n- secondi di fila allora
presumibilmente il nodo e' giu' (una specie di validity time alla
olsr). Altrimenti, al primo beat perso il server potrebbe credere che
il nodo sia a ramengo.

Antonio

Il 22 luglio 2010 16.53, Filippo Sallemi tonyp...@gmail.com ha scritto:
 Per completezza, quello che dice Antonio è giusto, ma è utilie nella
 situazione immediatamente successiva, ovvero inviare l'intero stato (o altre
 info) del nodo ad un entità centrale, per cui è necessario essere certi che
 arrivi e magari ricevere una risposta (robin update).
 In generale io vedo come unica informazione del beat, il nodo che lo sta
 mandando e nient'altro.

 ovviamente la parte server collezionerà una serie di pacchetti beat in
 base ai quali saprà se il nodo c'è oppure no.

 Magari mi sbaglio ma a me pare cristallino.

 Ciao

 Il giorno 22 luglio 2010 16.47, Filippo Sallemi tonyp...@gmail.com ha
 scritto:

 Sono daccordissimo con te Michele, non ho proprio voglia di reinventare
 l'acqua calda anche se in verità il programmino con il suo ciclo di vita
 dovrebbe essere abbastanza facile da implementare e con pochi rischi di
 fallimento.

 In verità avrei voluto usare snmp per questo genere di cose ma non so se
 in realtà è la scelta giusta.

 La scelta di UDP dipende da due fattori:

 Usare minor banda possibile;
 Non mi interessa se perdo qualche pacchetto, mi interessa solo dire hei
 ci sono ogni tot secondi, dove tot è un numero veramente basso.

 Il software è pensato per una serie di applicazioni lato server e
 sicuramente non è sufficiente per fare monitoring dei nodi, ma rappresenta
 un inizio...

 Filippo


 Il giorno 22 luglio 2010 16.42, Antonio Anselmi tony.anse...@gmail.com
 ha scritto:

 perche' non usare TCP? con UDP spari e speri che il beat arrivi a
 destinazione, senza alcuna info sullo stato della connesiione

 Antonio

 Il 22 luglio 2010 14.45, Michele Favara Pedarsi m...@meganetwork.org
 ha scritto:
  Di heartbeat ce ne sono a iosa; da semplici script che pingano a
  soluzioni
  complesse. Cerca prima di sviluppare l'ennesima tecnologia apposita...
  anche
  perche' stai facendo un sistema di monitoraggio, e come tale ha bisogno
  di
  essere affidabile; se te lo fai da solo rischi di affidarti ad una cosa
  che
  per essere affidabile deve prima fallire qualche volta per trovare i
  bug...
  a meno che non applichi i modelli di sviluppo piu' rigidi, con i tempi
  che
  questi comportano...
 
  Una via di mezzo potrebbe essere quella di impiegare un qualsiasi
  socket
  server multithreaded generico gia' sviluppato - ie: esente da bachi - a
  cui
  devi aggiungere solo quella pochissima logica che verifica l'arrivo di
  un
  pacchetto ogni x secondi da y IP.
 
  ciao
 
  Michele
 
 
 
  Il giorno 22 luglio 2010 14.37, Filippo Sallemi tonyp...@gmail.com ha
  scritto:
 
  Vi ringrazio per il supporto ragazzi, ed è tutto molto interessante.
  Il motivo per cui sto scrivendo questo piccolissimo software è perchè
  vorrei avere un heartbeat dei nodi da mandare ad un server, per il
  solo
  scopo di tenere sotto controllo lo stato dei nodi in tempo più reale
  possibile ma senza compromettere la banda.
 
  In verità penso che sia solo sufficiente mandare un beat al server e
  non
  ricvere nulla nel caso specifico, ovviamente però potrei sbaglairmi o
  non
  tenere conto di qualcosa che magari mi sfugge.
 
  So programmare in concorrenza, ma purtroppo la mia poca esperienza di
  concorrenza viene da mondo java universitario.
 
  Se pensate che quello che sto facendo sia inutile o interesante vi
  prego
  di farmelo sapere non voglio reinventare l'acqua calda.
 
  Ciao e grazie ancora
 
  Il giorno 22 luglio 2010 11.54, cl...@ninux.org ha scritto:
 
  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 tonyp...@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;
 

[Ninux-Wireless] Pacchetti UDP e rcvfrom

2010-07-21 Per discussione Filippo Sallemi
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