Strumenti Utente

Strumenti Sito


programmazione:c:server_is_up

Differenze

Queste sono le differenze tra la revisione selezionata e la versione attuale della pagina.

Link a questa pagina di confronto

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>​

programmazione/c/server_is_up.txt · Ultima modifica: 09/01/2021 - 10:47 da Fabio Di Matteo