Advertisement
BiRabittoh

Server1

Jan 11th, 2018
112
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.61 KB | None | 0 0
  1. /*
  2.  * Esercizio inventato da Marco Andronaco, LATO SERVER
  3.  * Crea un client e un server INET STREAM_SOCKET.
  4.  * Quando il client si connette al server, il server chiede due numeri e ne restituisce la somma al client, chiude quindi la connessione.
  5.  */
  6.  
  7. #include <sys/types.h>
  8. #include <sys/socket.h>
  9. #include <netinet/in.h>
  10. #include <stdio.h>
  11. #include <stdlib.h>
  12. #include <unistd.h>
  13. #include <sys/types.h>
  14.  
  15.  
  16. int main(void){
  17.     int res, new_sd, run = 1;
  18.     //socket
  19.     int sd = socket(AF_INET, SOCK_STREAM, 0);
  20.     if(sd == -1){
  21.         puts("Errore nella socket().");
  22.         exit(EXIT_FAILURE);
  23.     }
  24.    
  25.     //bind
  26.     struct sockaddr_in server_address;
  27.     server_address.sin_family = AF_INET;
  28.     server_address.sin_port = 0;
  29.     server_address.sin_addr.s_addr = INADDR_ANY;
  30.    
  31.     res = bind(sd, (struct sockaddr_in *)&server_address, sizeof(struct sockaddr_in));
  32.     if(res == -1){
  33.         puts("Errore nella bind().");
  34.         exit(EXIT_FAILURE);
  35.     }
  36.    
  37.     //listen
  38.     res = listen(sd, 5);
  39.     if(res == -1){
  40.         puts("Errore nella listen().");
  41.         exit(EXIT_FAILURE);
  42.     }
  43.    
  44.     //ottengo il numero di porta
  45.     int server_len = sizeof(server_address);
  46.     res = getsockname(sd, (struct sockaddr_in *)&server_address, &server_len);
  47.     if(res == -1){
  48.         puts("Errore nella getsockname().");
  49.         exit(EXIT_FAILURE);
  50.     }
  51.    
  52.     printf("Coda creata. Server in ascolto sulla porta %d.\n", server_address.sin_port);
  53.    
  54.     //accept
  55.     do {
  56.         new_sd = accept(sd, (struct sockaddr_in *)&server_address, &server_len);
  57.         if (accept == -1) {
  58.             puts("Errore nella accept().");
  59.             exit(EXIT_FAILURE);
  60.         }
  61.        
  62.         puts("Connessione stabilita!");
  63.     } while (run);
  64.    
  65.    
  66.     close(sd);
  67.     return 0;
  68. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement