Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    [risolto] Socket error: Address already in use; come pulirlo?

    Quando eseguo la funzione bind() su un programma server che ho creato, poco dopo aver fermato il server, mi ritrovo che l'indirizzo utilizzato precedentemente è ancora in uso, come l'errore nel titolo. Esiste un comando che mi permette di cancellarlo così da poter riutilizzare subito il server?
    Grazie!

  2. #2
    close(socket);
    provato?

  3. #3
    Sì, e non solo, ho anche utilizzato questo:

    memset((void *)&serv_add, 0, sizeof(serv_add));

    che a quanto ho letto (ma potrei aver capito male) pulirebbe l'indirizzo del server.

  4. #4

    Risolto

    Praticamente il problema avviene quando chiudo il server con ctrl+d, che ovviamente non gli permette di chiudere la connessione al socket.

    Ho risolto intercettando i segnali SIGINT (ctrl+d) e SIGTSTP (ctrl+z) in modo tale da fargli chiudere prima la connessione e poi uscire dal programma.

    Ora non succede più.

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.