##// END OF EJS Templates
Cambios en el cliente del Control_Module para pruebas de respuesta hacia Central_Control_Module
imanay -
r33:34
parent child
Show More
@@ -22,17 +22,23
22 #define PUERTO_SERVIDOR 5500
22 #define PUERTO_SERVIDOR 5500
23 //#define DIR_SERVIDOR "10.10.12.255"
23 //#define DIR_SERVIDOR "10.10.12.255"
24 #define DIR_SERVIDOR "192.168.1.255"
24 #define DIR_SERVIDOR "192.168.1.255"
25 #define TAM_BUFFER 100
26
25
27
26 int ClienteUDP(char *opcion, char *valor){
28 int ClienteUDP(char *opcion, char *valor){
27
29
28 int conexion_clienteFD;
30 int conexion_clienteFD;
29 struct sockaddr_in inf_servidor;
31 struct sockaddr_in inf_servidor, inf_servidor_2;
32 struct sockaddr_storage inf_cliente;
30
33
31 int broadcast= 1;
34 int broadcast= 1;
32 int resultado;
35 int resultado;
33 int numbytes_enviados;
36 int numbytes_enviados;
37 int numbytes_recibidos;
38 size_t addr_len;
34
39
35 char *buff_peticion;
40 char *buff_peticion;
41 char *buff_rx = (char *) malloc(TAM_BUFFER);
36 char *comando= NULL;
42 char *comando= NULL;
37
43
38 if (strcmp(opcion,"-l") == 0){ // Se reconoce el comando que se esta enviando
44 if (strcmp(opcion,"-l") == 0){ // Se reconoce el comando que se esta enviando
@@ -57,26 +63,51
57 return -1;
63 return -1;
58 }
64 }
59
65
60 /* Se establece el Broadcast con la funcion setsockpt() */
66 /* Se establece el Broadcast con la funcion setsockpt()
61 resultado= setsockopt(conexion_clienteFD, SOL_SOCKET, SO_BROADCAST, &broadcast, sizeof(broadcast));
67 resultado= setsockopt(conexion_clienteFD, SOL_SOCKET, SO_BROADCAST, &broadcast, sizeof(broadcast));
62 if (resultado == -1){
68 if (resultado == -1){
63 ERROR("No se pudo establecer la opcion de Broadcast: setsockopt()");
69 ERROR("No se pudo establecer la opcion de Broadcast: setsockopt()");
64 return -1;
70 return -1;
71 }*/
72
73 /* Configuracion para el bind() */
74 inf_servidor.sin_family= AF_INET;
75 inf_servidor.sin_port= htons(PUERTO_SERVIDOR);
76 //inf_servidor.sin_port= 0;
77 //inf_servidor.sin_addr.s_addr= inet_addr("192.168.1.255");
78 inf_servidor.sin_addr.s_addr= INADDR_ANY;
79 memset(inf_servidor.sin_zero, '\0', sizeof(inf_servidor.sin_zero));
80
81 /* ConfiguraciΓ³n para el sendto() */
82 inf_servidor_2.sin_family= AF_INET;
83 inf_servidor_2.sin_port= htons(PUERTO_SERVIDOR);
84 //inf_servidor.sin_port= 0;
85 inf_servidor_2.sin_addr.s_addr= inet_addr("192.168.1.13");
86 //inf_servidor_2.sin_addr.s_addr= INADDR_ANY;
87 memset(inf_servidor_2.sin_zero, '\0', sizeof(inf_servidor_2.sin_zero));
88
89 /* Se asocia el socket a un puerto y una IP */
90 resultado = bind(conexion_clienteFD,(struct sockaddr *)&inf_servidor,sizeof(inf_servidor));
91 if (resultado== -1){
92 ERROR_FATAL("No se establecio correctamente el socket: bind()");
65 }
93 }
66
94
67 /* Se configura la estructura que contiene la informacion sobre el servidor: inf_servidor */
68 inf_servidor.sin_family= AF_INET;
69 inf_servidor.sin_port= htons(PUERTO_SERVIDOR);
70 inf_servidor.sin_addr.s_addr= inet_addr(DIR_SERVIDOR);
71 memset(inf_servidor.sin_zero, '\0', sizeof(inf_servidor.sin_zero));
72
73 /* Se procede a enviar el buffer */
95 /* Se procede a enviar el buffer */
74 numbytes_enviados= sendto(conexion_clienteFD,buff_peticion,strlen(buff_peticion),0,(struct sockaddr *)&inf_servidor,sizeof(inf_servidor));
96 //numbytes_enviados= sendto(conexion_clienteFD,buff_peticion,strlen(buff_peticion),0,(struct sockaddr *)&inf_servidor,sizeof(inf_servidor));
97 numbytes_enviados= sendto(conexion_clienteFD,buff_peticion,strlen(buff_peticion),0,(struct sockaddr *)&inf_servidor_2,sizeof(inf_servidor_2));
75 if(numbytes_enviados == -1){
98 if(numbytes_enviados == -1){
76 ERROR("Error de envio de datos: sendto()");
99 ERROR("Error de envio de datos: sendto()");
77 return -1;
100 return -1;
78 }
101 }
79
102
103 /* Se espera respuesta del servidor */
104 addr_len = sizeof(inf_cliente);
105 printf("Esperando respuesta del servidor\n");
106 numbytes_recibidos = recvfrom(conexion_clienteFD, buff_rx, TAM_BUFFER-1, 0, (struct sockaddr *)&inf_cliente, &addr_len);
107 if (numbytes_recibidos == -1){
108 ERROR_FATAL("Error en la recepcion de datos: recvfrom()");
109 }
110 printf("Recibida la respuesta del servidor\n");
80 close(conexion_clienteFD);
111 close(conexion_clienteFD);
81
112
82 return 0;
113 return 0;
General Comments 0
You need to be logged in to leave comments. Login now