CONEXÃO COM C Programa DNN SERVIDOR
- int id_gestor_config;
- int id_gestor_estat;
- int porto;
- /*--------------- PEDIDOS
- ----------------1. CONEXÃO COM O DNNSERVER.C */
- // Verificao do argumento
- if(argc <= 1) {
- erro("Erro no argumento!\n");
- }
- // porto onde sao recebidos os pedidos
- porto = atoi(argv[1]);
- if(porto <= 0) {
- erro("Porto invalido!\n");
- }
- struct sockaddr_in este, dnsserver;
- int fd_socket, len_socket = sizeof(dnsserver), len_recv;
- char buf[BUFLEN];
- if((fd_socket = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP)) == -1){
- erro("criacao do socket\n");
- }
- este.sin_family = AF_INET;
- este.sin_port = htons(porto);
- este.sin_addr.s_addr = htonl(INADDR_ANY);
- int trueValue = 1;
- setsockopt(fd_socket, SOL_SOCKET, SO_REUSEADDR, &trueValue, sizeof(trueValue));
- if(bind(fd_socket,(struct sockaddr*)&este, sizeof(este)) == -1){
- erro("bind\n");
- }
- while(1){
- printf("A espera....\n");
- if((len_recv = recvfrom(fd_socket, buf, BUFLEN, 0, (struct sockaddr*)&dnsserver, &len_socket)) == -1){
- erro("recvfrom\n");
- }
- printf("--------> %s --- %d\n", inet_ntoa(dnsserver.sin_addr), ntohs(dnsserver.sin_port));
- printf("conteudo: %s\n",buf);
- }
- close(fd_socket);