Queste sono le differenze tra la revisione selezionata e la versione attuale della pagina.
Entrambe le parti precedenti la revisione Revisione precedente Prossima revisione | Revisione precedente | ||
programmazione:c:server_is_up [09/01/2021 - 00:27] Fabio Di Matteo |
programmazione:c:server_is_up [09/01/2021 - 10:47] Fabio Di Matteo |
||
---|---|---|---|
Linea 4: | Linea 4: | ||
La funzione ritorna 1 se il server accetta connessioni e 0 altrimenti. | La funzione ritorna 1 se il server accetta connessioni e 0 altrimenti. | ||
+ | ===== Se il server non è localhost ===== | ||
+ | Funziona anche su localhost. Sempre che il server accetti piu' di una connessione. | ||
<code c> | <code c> | ||
#include <sys/types.h> | #include <sys/types.h> | ||
Linea 44: | Linea 45: | ||
} | } | ||
+ | } | ||
+ | </code> | ||
+ | |||
+ | ===== Server su localhost ===== | ||
+ | Da usare solo su localhost. Anche su server che accettano solo una connessione. | ||
+ | |||
+ | <code c> | ||
+ | #include <sys/types.h> | ||
+ | #include <sys/socket.h> | ||
+ | #include <netinet/in.h> | ||
+ | #include <netdb.h> | ||
+ | #include <stdlib.h> | ||
+ | |||
+ | |||
+ | int serverIsUp(int port) | ||
+ | { | ||
+ | struct sockaddr_in server; | ||
+ | int sd; | ||
+ | |||
+ | if ( (sd = socket(AF_INET, SOCK_STREAM, 0)) < 0) | ||
+ | printf("Errore nella creazione del socket!\n"); | ||
+ | |||
+ | server.sin_family = AF_INET; | ||
+ | server.sin_port = htons(port); | ||
+ | server.sin_addr.s_addr = INADDR_ANY; | ||
+ | |||
+ | |||
+ | if (bind(sd, (struct sockaddr *)&server, sizeof(server)) < 0) | ||
+ | { | ||
+ | printf("Server is UP!\n"); | ||
+ | close(sd); | ||
+ | return 1; | ||
+ | }else{ | ||
+ | printf("Server is DOWN!\n"); | ||
+ | close(sd); | ||
+ | return 0; | ||
+ | } | ||
+ | close(sd); | ||
+ | |||
} | } | ||
</code> | </code> |
Il nostro wiki installa solamente cookie tecnici necessari al funzionamento della piattaforma "Dokuwiki". Niente analitics, statistiche, tracciamenti o altro.