#include #define PORT 3490 //the port client will be connecting to
#define MAXDATASIZE 100 //max number of bytes we can get at once
int main(int argc, char **argv)
{
int sockfd,numbytes;
char buf[MAXDATASIZE];
struct hostent *he;
struct sockaddr_in their_addr; //connector's address information
if(argc!=2)
{
fprintf(stderr,"usage:client hostname\n");
exit(1);
}
if((he=gethostbyname(argv[1]))==NULL)
{
perror("gethostbyname fail\n");
exit(1);
}
printf("gethostbyname success!\n");
if((sockfd=socket(AF_INET,SOCK_STREAM,0))==-1)
{
perror("socket fail\n");
exit(1);
}
printf("socket success!\n");
their_addr.sin_family=AF_INET;
their_addr.sin_port=htons(PORT);
their_addr.sin_addr=*((struct in_addr *)he->h_addr);
memset(&(their_addr.sin_zero),'\0',8);
if(connect(sockfd,(struct sockaddr *)&their_addr,sizeof(struct sockaddr))==-1)
{
perror("connect fail\n");
exit(1);
}
printf("connect success!\n");
if((numbytes=recv(sockfd,buf,MAXDATASIZE-1,0)==-1))
{
perror("recv");
exit(1);
}
buf[numbytes]='\0';
printf("Received:%s",buf);
close(sockfd);
return 0;
}