/* clienteman.c */

#include <stdio.h>
#include <string.h>
#include <unistd.h>
#include <signal.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netdb.h>
#include <netinet/in.h>

int main (int argc, char *argv[])
{
struct sockaddr_in alamat_ku;
struct sockaddr_in tujuan;
struct hostent *host_server;
int socketfd, connect_status, baca;
int no_port;
char buffer[256];

if (argc != 3) {
fprintf (stderr, "gunakan: %s <alamat server > <nomor_port>\n", argv[0]);
exit(1);
}

if ((socketfd = socket(AF_INET, SOCK_STREAM, 0)) < 0) {
fprintf (stderr, "tidak bisa memasang socket !\n");
exit(1);
}

if ((host_server = gethostbyname(argv[1])) == NULL) {
fprintf (stderr, "Nama host mungkin salah :)\n");
exit(1);
}
no_port = atoi(argv[2]);

bzero (&tujuan, sizeof(tujuan));
tujuan.sin_family = AF_INET;
tujuan.sin_port = htons (no_port);
memcpy ((char *)&tujuan.sin_addr.s_addr, host_server->h_addr_list[0], host_server->h_length);

if ((connect_status = connect (socketfd, (struct sockaddr *)&tujuan, sizeof(tujuan))) < 0) {
fprintf(stderr, "%s: tidak dapat melakukan koneksi\n", argv[0]);
exit(1);
}

while((baca = recv(socketfd, buffer, strlen(buffer), 0)) > 0) {
printf("%s", buffer);
}

close (socketfd);
return 0;
}
