#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <time.h>
#include <stdio.h>
#include <string.h>
#include <unistd.h>

#define MAXLINE     1024

void error (const char *msg)
{
    fprintf (stderr, "%s\n", msg);
    exit (-1);
}

int main(int argc, char **argv)
{
    int                 sockfd, n;
    char                recvline[MAXLINE + 1];
    struct sockaddr_in  servaddr;

    if (argc != 2) 
        error ("usage: a.out <IPaddress>");

    if ( (sockfd = socket(AF_INET, SOCK_STREAM, 0)) < 0) 
        error ("socket error");

    // bzero(&servaddr, sizeof(servaddr));
    memset (&servaddr, 0, sizeof(servaddr));
    servaddr.sin_family = AF_INET;
    servaddr.sin_port   = htons(9999);  /* daytime server */
    if (inet_aton(argv[1], &servaddr.sin_addr) <= 0)
        error ("bad IP address");

    if (connect(sockfd, (struct sockaddr *) &servaddr, sizeof(servaddr)) < 0) 
        error ("connect error");
	printf ("connection established\n");

    while ( (n = read(sockfd, recvline, MAXLINE)) > 0) {
        recvline[n] = 0;    /* null terminate */
        fputs(recvline, stdout);
    }
}
