]> git.llucax.com Git - z.facultad/75.42/plaqui.git/blob - tests/cliente.c
ahora compila, y se pueden guardar los datos de los items.
[z.facultad/75.42/plaqui.git] / tests / cliente.c
1 /*
2  * Ejemplo de server Datagram, para chateo P2P
3  *
4  * Por Ricardo Markiewicz
5  *
6  */
7
8 #include <stdio.h>
9 #include <stdlib.h>
10 #include <errno.h>
11 #include <string.h>
12 #include <netdb.h>
13 #include <arpa/inet.h>
14 #include <sys/types.h>
15
16 #define SERVER_PORT 4321
17 #define BUFFER_LEN 1024
18
19 int main(int argc, char *argv[])
20 {
21         int sockfd;
22         struct sockaddr_in their_addr; /* Almacenara la direccion IP y numero de puerto del servidor */
23         struct hostent *he;
24         int numbytes;
25         if (argc != 3) {
26                 fprintf(stderr,"usage: cliente hostname mensaje\n");
27                 exit(1);
28         }
29
30         /* convertimos el hostname a su direccion IP */
31         if ((he=gethostbyname(argv[1])) == NULL) {
32                 herror("gethostbyname");
33                 exit(1);
34         }
35
36         /* Creamos el socket */
37         if ((sockfd = socket(AF_INET, SOCK_DGRAM, 0)) == -1) {
38                 perror("socket");
39                 exit(1);
40         }
41
42         their_addr.sin_family = AF_INET; /* host byte order */
43         their_addr.sin_port = htons(SERVER_PORT); /* network byte order */
44         their_addr.sin_addr = *((struct in_addr *)he->h_addr);
45         bzero(&(their_addr.sin_zero), 8);
46
47         /* enviamos el mensaje, esta linea contiene una barra invertida al final,
48          * indicando que sigue abajo
49          */
50         if ((numbytes=sendto(sockfd,argv[2],strlen(argv[2]),0,(struct sockaddr *)&their_addr,   sizeof(struct sockaddr))) == -1) {
51                 perror("sendto");
52                 exit(1);
53         }
54
55         printf("enviados %d bytes hacia %s\n",numbytes,inet_ntoa(their_addr.sin_addr));
56
57         close(sockfd);
58         
59         return 0;
60 }
61