Visualizzazione dei risultati da 1 a 9 su 9

Discussione: Server icmp in C

  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2007
    Messaggi
    34

    Server icmp in C

    Vi espongo il problema: Ho creato il mio server multiclient sotto linux.
    Ora, mi occorre che dopo un ciclo di lettura delle richieste arrivategli, mi risponda in broadcast ai vari client, quindi pensavo di utilizzare socket raw con icmp, per riuscire a far una cosa del genere, ossia il server risponde ed ogni client si prende quello indirizzato a lui e rispedisce il messaggio. Ora, a dirsi è facile, ma a farsi....
    Qualcuno di voi ha qualche esempio, o qualche guida?
    Grazie

  2. #2
    Non ho capito nulla di quello che hai scritto.
    Rilasciata Python FTP Server library 0.5.1
    http://code.google.com/p/pyftpdlib/

    We'll be those who'll make the italian folks know how difficult can be defecating in Southern California without having the crap flying all around the house.

  3. #3
    Utente di HTML.it
    Registrato dal
    Oct 2007
    Messaggi
    34
    Allora, cerco di spiegarmi meglio.
    Siccome sto simulando un collegamento satellitare, dove fai conto che il server sia sul satellite, ed i vari client a terra, devo incapsulare le risposte( x risposte intendo alcuni parametri dedicati x singolo terminale) ed inviarle in broadcast,in modo che ogni client si prenda il messaggio a lui indirizzato e basta.
    Quindi il server praticamente mi fa una reed ogni tot. secondi, dove mi legge le richieste dei vari client, quindi mi calcola alcuni parametri, e me li invia in broadcast ai client.

    Io per il momento ho fatto un classico server-multiclient UDP (socket UDP), dove rispondo ad ogni client con un messaggio dedicato (ho fatto una fork() della sendto() ). Ora vorrei perfezionarlo in modo da fare un unica risposta broadcast, e poi stara' ad ogni client prendersi la risposta con il proprio ID. Logicamente utilizzero le socket RAW e non più UDP.

  4. #4
    Non capisco cosa c'entri ICMP.
    Rilasciata Python FTP Server library 0.5.1
    http://code.google.com/p/pyftpdlib/

    We'll be those who'll make the italian folks know how difficult can be defecating in Southern California without having the crap flying all around the house.

  5. #5
    Utente di HTML.it
    Registrato dal
    Oct 2007
    Messaggi
    34
    Ma ICMP è la prima cosa che mi è venuta in mente, anche cercando su google, tutto li. Non sono un informatico, uso linux da 3 mesi piu o meno, e mi tocca programmare in C, che non conoscevo fino a poco tempo fa.
    Appunto ho chiesto un aiuto, se qualcuno poteva darmi qualche idea per far questo!!!

  6. #6
    Se devi mandare delle risposte ai client semplicemente continua ad utilizzare UDP chiamando una sendto() per ogni client connesso.
    Perchè dovresti utilizzare ICMP? Come ti è venuto in mente? ICMP serve a tutt'altro e non dovrebbe neanche trasportare dati al suo interno.
    O continui ad usare UDP oppure riscrivi tutto utilizzando TCP.
    A meno che non scrivi applicazioni particolari come port scanner, firewall, ping o software di routing ICMP non ti interessa.
    Rilasciata Python FTP Server library 0.5.1
    http://code.google.com/p/pyftpdlib/

    We'll be those who'll make the italian folks know how difficult can be defecating in Southern California without having the crap flying all around the house.

  7. #7
    Utente di HTML.it
    Registrato dal
    Oct 2007
    Messaggi
    34
    Ma infatti è quello che gia ho fatto, una sendto() udp verso ogni client.
    Ora pero' dovrei perfezionarlo, cerco di farmi capire: il mio server mi simula una master slave DAMA, quindi riceve i logon da tutti i terminali, alla fine stoppa e calcola parametri (ke sono in base a quanti terminali son connessi e alle richieste totali arrivate), e quindi risponde ai client. Ora, lo standard DVB-RCS ha il canale di ritorno broadcast con il quale "realmente" risponde alle varie stazioni (i miei client ). Quindi per avvicinarmi alla realta, vorrei fare in modo di spedire un unica risposta nella quale ho vari "campi identificativi" dei client, e questi ultimi si prendano sollo il campo indirizzato a loro!
    Poi ripeto, è solo un perfezionamento che vorrei fare e volevo sapere se era fattibile, tutto qui!
    Grazie comunque.

  8. #8
    Non conosco quello di cui stai parlando (e cmq ti spieghi male) ma continuo a non capire cosa c'entri ICMP.
    Se quello che devi fare è mandare dati dal server ai client e/o viceversa il protocollo che ti serve è UDP o alternativamente TCP utilizzando la classica programmazione con i socket.
    ICMP non è pensato per scambiarsi dati e non ti serve utilizzare socket raw.
    Rilasciata Python FTP Server library 0.5.1
    http://code.google.com/p/pyftpdlib/

    We'll be those who'll make the italian folks know how difficult can be defecating in Southern California without having the crap flying all around the house.

  9. #9
    Utente di HTML.it L'avatar di Stoicenko
    Registrato dal
    Feb 2004
    Messaggi
    2,254
    se mandi il messaggio via udp in broadcast con un ip multicast il problema è risolto..

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.