Gestire "connection closed by peer"

di il
4 risposte

Gestire "connection closed by peer"

Ciao a tutti
Come riesco a capire se il server ha chiuso la connessione?
Dovrei gestire tale errore prima di fare la read, ma non so come verificarlo.

grazie.

4 Risposte

  • Re: Gestire "connection closed by peer"

    La read ti ritorna <= zero in caso di errore oppure puoi usare la SIGPIPE
  • Re: Gestire "connection closed by peer"

  • Re: Gestire "connection closed by peer"

    Grazie! Davvero utile il documento
    Non ho ancora risolto, solo perchè sono molto scarso con l'uso dei segnali... quindi mi ci devo mettere sul problema con molta calma.
    Appena risolvo posto la soluzione
  • Re: Gestire "connection closed by peer"

    Ok, lo ammetto, sono veramente troppo scarso con i segnali
    è un po' che cerco di capire come gestire questo errore... e nonostante il documento che mi hai passato, seppur molto istruttivo, non ci riesco. Ho troppa confusione in testa.
    Quindi aiutami a capire, ti prego!

    La mia situazione è questa: io ho un server e molti client; il server ha creato una socket sk su cui tutti i client comunicano verso il server; ogni client crea una socket privata sk_idclient su cui il server comunica le risposte.
    Per gestire i messaggi che si scambiano client e server, uso una libreria da me creata:
    - sendMessage --> usa la write; - receiveMessage --> usa la read.

    Quindi da quello che ho capito fin ora.
    Al processo server gli faccio ignorare tutti i segnali SIGPIPE. In questo modo non termina in caso un client ha chiuso erroneamente una connessione.
    Al processo client gestisco l'errore di SIGPIPE in un modo tale da permettergli di chiudere la connessione sul server, ma non terminare. In modo che potrà comunque continuare a leggere dalla socket da lui creata.

    Sinceramente non so manco io che aiuto sto cercando.
    Ma ho una tale confusione, cioè mi metto davanti al mio file e non so cosa fare.

    Spero solo che qualche risposta mi possa sbloccare.
    Grazie
Devi accedere o registrarti per scrivere nel forum
4 risposte