##// END OF EJS Templates
imanay -
r36:37
parent child
Show More
@@ -0,0 +1,83
1 /*
No newline at end of file
2 * ClienteUDP.c
No newline at end of file
3 *
No newline at end of file
4 * Fecha de creacion : Nov 2, 2009
No newline at end of file
5 * Ultima modificacion : Nov 19, 2009
No newline at end of file
6 * Autor : Jose Francisco Quenta C.
No newline at end of file
7 */
No newline at end of file
8
No newline at end of file
9 #include <stdio.h>
No newline at end of file
10 #include <stdlib.h>
No newline at end of file
11 #include <string.h>
No newline at end of file
12 #include <unistd.h>
No newline at end of file
13 #include <errno.h>
No newline at end of file
14 #include <sys/types.h>
No newline at end of file
15 #include <sys/socket.h>
No newline at end of file
16 #include <netinet/in.h>
No newline at end of file
17 #include <arpa/inet.h>
No newline at end of file
18 #include <netdb.h>
No newline at end of file
19
No newline at end of file
20 #include "./Librerias/Mensajes.h"
No newline at end of file
21
No newline at end of file
22 #define PUERTO_SERVIDOR 5500
No newline at end of file
23 //#define DIR_SERVIDOR "10.10.12.255"
No newline at end of file
24 #define DIR_SERVIDOR "192.168.1.255"
No newline at end of file
25
No newline at end of file
26 int ClienteUDP(char *opcion, char *valor){
No newline at end of file
27
No newline at end of file
28 int conexion_clienteFD;
No newline at end of file
29 struct sockaddr_in inf_servidor;
No newline at end of file
30
No newline at end of file
31 int broadcast= 1;
No newline at end of file
32 int resultado;
No newline at end of file
33 int numbytes_enviados;
No newline at end of file
34
No newline at end of file
35 char *buff_peticion;
No newline at end of file
36 char *comando= NULL;
No newline at end of file
37
No newline at end of file
38 if (strcmp(opcion,"-l") == 0){ // Se reconoce el comando que se esta enviando
No newline at end of file
39 comando= "CARGA:";
No newline at end of file
40 }else if(strcmp(opcion,"-c") == 0){
No newline at end of file
41 comando= "CAMBIA:";
No newline at end of file
42 }else if(strcmp(opcion,"-ch") == 0){
No newline at end of file
43 comando= "CHEQUEO:";
No newline at end of file
44 }else {
No newline at end of file
45 ERROR("OPCION INCORRECTA: {-l|-c|-ch}");
No newline at end of file
46 return -1;
No newline at end of file
47 }
No newline at end of file
48
No newline at end of file
49 buff_peticion= (char *) malloc(strlen(comando)+1+strlen(valor)+1); // Se arma el buffer a ser enviado.
No newline at end of file
50 strcpy(buff_peticion,comando);
No newline at end of file
51 strcat(buff_peticion,valor);
No newline at end of file
52
No newline at end of file
53 /* Se establece el socket UDP */
No newline at end of file
54 conexion_clienteFD= socket(AF_INET,SOCK_DGRAM,0);
No newline at end of file
55 if (conexion_clienteFD == -1){
No newline at end of file
56 ERROR("No se pudo establecer el socket: socket()");
No newline at end of file
57 return -1;
No newline at end of file
58 }
No newline at end of file
59
No newline at end of file
60 /* Se establece el Broadcast con la funcion setsockpt() */
No newline at end of file
61 resultado= setsockopt(conexion_clienteFD, SOL_SOCKET, SO_BROADCAST, &broadcast, sizeof(broadcast));
No newline at end of file
62 if (resultado == -1){
No newline at end of file
63 ERROR("No se pudo establecer la opcion de Broadcast: setsockopt()");
No newline at end of file
64 return -1;
No newline at end of file
65 }
No newline at end of file
66
No newline at end of file
67 /* Se configura la estructura que contiene la informacion sobre el servidor: inf_servidor */
No newline at end of file
68 inf_servidor.sin_family= AF_INET;
No newline at end of file
69 inf_servidor.sin_port= htons(PUERTO_SERVIDOR);
No newline at end of file
70 inf_servidor.sin_addr.s_addr= inet_addr(DIR_SERVIDOR);
No newline at end of file
71 memset(inf_servidor.sin_zero, '\0', sizeof(inf_servidor.sin_zero));
No newline at end of file
72
No newline at end of file
73 /* Se procede a enviar el buffer */
No newline at end of file
74 numbytes_enviados= sendto(conexion_clienteFD,buff_peticion,strlen(buff_peticion),0,(struct sockaddr *)&inf_servidor,sizeof(inf_servidor));
No newline at end of file
75 if(numbytes_enviados == -1){
No newline at end of file
76 ERROR("Error de envio de datos: sendto()");
No newline at end of file
77 return -1;
No newline at end of file
78 }
No newline at end of file
79
No newline at end of file
80 close(conexion_clienteFD);
No newline at end of file
81
No newline at end of file
82 return 0;
No newline at end of file
83 } No newline at end of file
General Comments 0
You need to be logged in to leave comments. Login now