[C] gestione connection refused

di il
6 risposte

[C] gestione connection refused

Buongiorno a tutti,

sto sviluppando un software p2p in c.

Brevemente ho un server in ascolto che riceve richieste dal peer.

Il server è a sua volta un peer ma con caratteristiche particolari quindi un "superpeer" al quale sono connessi N peer.

Il superpeer può uscire dalla rete, se il superpeer esce, il peer ad esso associato che prova a contattarlo riceve ovviamente:

errore in connect: Connection refused
La domanda è la seguente, come posso a livello di codice riconoscere che ho ottenuto un connection refused , quindi gestirlo senza tra l'altro far interrompere l'esecuzione del programma

6 Risposte

  • Re: [C] gestione connection refused

    Ciao,
    come gestisci la comunicazione tra i vari nodi della rete? Con delle socket? Se è così allora dovresti riuscire ad intercettare il fallimento del metodo connect.
  • Re: [C] gestione connection refused

    Ciao e grazie per la risposta.

    Si il tutto e' gestito con delle socket.

    Ho visto il link, in sostanza se ricevo -1 ho un errore e fin qui ok.

    L'errore che mi interessa ho visto essere : ECONNREFUSED
    No-one listening on the remote address.

    e sembrerebbe che valorizza la variabile errno...

    Banalmente cosa dovrei fare? leggere il contenuto di errno?

    Un qualcosa tipo strcmp(errno,"ECONNREFUSED") ?
  • Re: [C] gestione connection refused

    Per prima cosa devi includere
    #include <errno.h>
    Poi errno è un intero, quindi il controllo lo puoi fare con
    if(errno == ...)
    Per maggiori informazioni: link.
  • Re: [C] gestione connection refused

    If(errno==?) cosa metto per identificare ECONNREFUSED , non trovo nel link indicazione del numero
  • Re: [C] gestione connection refused

    Non vorrei dire stupidaggini, però secondo me puoi scrivere proprio
    if(errno == ECONNREFUSED)
    dato che ECONNREFUSED dovrebbe essere definito nel file errno.h.
  • Re: [C] gestione connection refused

    Mmm interessante...

    Provero', grazie
Devi accedere o registrarti per scrivere nel forum
6 risposte