Introduce pet-projects dir
[lcapit-junk-code.git] / books / tcpv1 / day-time / daytimetcpcli.c
blob661f74d4c2bfd0fd625d19f7cd78bac874b1bb57
1 #include <stdio.h>
2 #include <string.h>
3 #include <stdlib.h>
4 #include <unistd.h>
5 #include <sys/types.h>
6 #include <sys/socket.h>
7 #include <arpa/inet.h>
9 #define MAXLINE 4096
11 int main(int argc, char *argv[])
13 int sockfd, err, n;
14 char recvline[MAXLINE +1];
15 struct sockaddr_in servaddr;
17 if (argc != 2) {
18 fprintf(stderr, "usage: a.out <IP address>");
19 exit(1);
22 sockfd = socket(AF_INET, SOCK_STREAM, 0);
23 if (sockfd < 0) {
24 perror("socket()");
25 exit(1);
28 memset(&servaddr, 0, sizeof(servaddr));
29 servaddr.sin_family = AF_INET;
30 servaddr.sin_port = htons(13);
31 err = inet_pton(AF_INET, argv[1], &servaddr.sin_addr);
32 if (err < 0) {
33 perror("inet_pton()");
34 close(sockfd);
35 exit(1);
38 err = connect(sockfd, (struct sockaddr *) &servaddr,
39 sizeof(servaddr));
40 if (err < 0) {
41 perror("connect()");
42 close(sockfd);
43 exit(1);
46 while ( (n = read(sockfd, recvline, MAXLINE) ) > 0) {
47 recvline[n] = '\0'; /* NULL terminate */
48 if (fputs(recvline, stdout) == EOF)
49 perror("fputs()");
51 if (n < 0)
52 perror("read()");
54 exit(0);