Aggiunto esempio di client daytime basato su UDP.
[gapil.git] / listati / UDP_daytime.c
1 int main(int argc, char *argv[])
2 {
3     int sock;
4     int i, nread;
5     struct sockaddr_in addr;
6     char buffer[MAXLINE];
7     ...
8     /* create socket */
9     if ( (sock = socket(AF_INET, SOCK_DGRAM, 0)) < 0) {
10         perror("Socket creation error");
11         return -1;
12     }
13     /* initialize address */
14     memset((void *) &addr, 0, sizeof(addr));    /* clear server address */
15     addr.sin_family = AF_INET;                  /* address type is INET */
16     addr.sin_port = htons(13);                  /* daytime port is 13 */
17     /* build address using inet_pton */
18     if ( (inet_pton(AF_INET, argv[optind], &addr.sin_addr)) <= 0) {
19         perror("Address creation error");
20         return -1;
21     }
22     /* send request packet */
23     nread = sendto(sock, NULL, 0, 0, (struct sockaddr *)&addr, sizeof(addr));
24     if (nread < 0) {
25         perror("Request error");
26         return -1;
27     }
28     nread = recvfrom(sock, buffer, MAXLINE, 0, NULL, NULL);
29     if (nread < 0) {
30         perror("Read error");
31         return -1;
32     }
33     /* print results */
34     if (nread > 0) {
35         buffer[nread]=0;
36         if (fputs(buffer, stdout) == EOF) {          /* write daytime */
37             perror("fputs error");
38             return -1;
39         }
40     }
41     /* normal exit */
42     return 0;
43 }