CONEXÃO COM C Programa DNN SERVIDOR

CONEXÃO COM C Programa DNN SERVIDOR

  1. int id_gestor_config;
  2.         int id_gestor_estat;
  3.         int porto;
  4. /*--------------- PEDIDOS
  5. ----------------1. CONEXÃO COM O DNNSERVER.C */
  6.  
  7.         // Verificao do argumento
  8.         if(argc <= 1) {
  9.                 erro("Erro no argumento!\n");
  10.         }
  11.        
  12.         // porto onde sao recebidos os pedidos
  13.         porto = atoi(argv[1]);
  14.  
  15.         if(porto <= 0) {
  16.                 erro("Porto invalido!\n");
  17.         }
  18.  
  19.         struct sockaddr_in este, dnsserver;
  20.  
  21.         int fd_socket, len_socket = sizeof(dnsserver), len_recv;
  22.         char buf[BUFLEN];
  23.  
  24.         if((fd_socket = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP)) == -1){
  25.                 erro("criacao do socket\n");
  26.         }
  27.  
  28.         este.sin_family = AF_INET;
  29.         este.sin_port = htons(porto);
  30.         este.sin_addr.s_addr = htonl(INADDR_ANY);
  31.  
  32.         int trueValue = 1;
  33.         setsockopt(fd_socket, SOL_SOCKET, SO_REUSEADDR, &trueValue, sizeof(trueValue));
  34.  
  35.         if(bind(fd_socket,(struct sockaddr*)&este, sizeof(este)) == -1){
  36.                 erro("bind\n");
  37.         }
  38.         while(1){
  39.                 printf("A espera....\n");
  40.                 if((len_recv = recvfrom(fd_socket, buf, BUFLEN, 0, (struct sockaddr*)&dnsserver, &len_socket)) == -1){
  41.                         erro("recvfrom\n");
  42.                 }
  43.  
  44.                 printf("--------> %s --- %d\n", inet_ntoa(dnsserver.sin_addr), ntohs(dnsserver.sin_port));
  45.                 printf("conteudo: %s\n",buf);
  46.  
  47.         }
  48.  
  49.         close(fd_socket);


Learn More :