#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <netdb.h>
#include <string.h>
#define BUF_MAX 100
#define Err(x) {fprintf( stderr,"server-"); perror(x); exit(0);}
char buf[BUF_MAX];
main(int argc,char* argv[])
{
struct hostent *shost;
struct sockaddr_in server;
int s;
u_short port_no = (u_short)atoi(argv[2]);
union{
unsigned int i;
unsigned char c[4];
}ipaddr;
if((shost = gethostbyname(argv[1])) == NULL)
Err("gethostbyname");
bzero((char *)&server, sizeof(server));
server.sin_family = AF_INET;
server.sin_port = htons(port_no);
bcopy(shost->h_addr, (char *)&server.sin_addr, shost->h_length);
ipaddr.i=server.sin_addr.s_addr;
printf("%d.%d.%d.%d\n",ipaddr.c[0],ipaddr.c[1],ipaddr.c[2],ipaddr.c[3]);
if((s = socket(AF_INET, SOCK_STREAM, 0)) < 0)
Err("socket");
if(connect(s, (struct sockaddr *)&server, sizeof(server)) == -1)
Err("connect");
write(1, "Wait\n", 5);
do{
int n;
write(1,"--Message from server.--\n",25);
n = read(s, buf, BUF_MAX);
write(1, buf, n);
write(1,"--Enter your message.--\n",24);
n = read(0, buf, BUF_MAX);
write(s, buf, n);
}
while( strncmp(buf, "quit" ,4) != 0 );
close(s);
}