您的位置:首页 > 编程语言

socket 简单实例2.客户端代码

2010-08-25 22:41 519 查看
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<netdb.h>
#include<sys/types.h>
#include<netinet/in.h>
#include<sys/socket.h>

#define MAXDATASIZE 100 /*max number of bytes we can get 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 )
{
printf("suage:client hostname/n");
exit(1);
}
if ((he = gethostbyname(argv[1])) == NULL)
{
printf("gethostname error/n");
exit(1);
}
if((sockfd = socket(AF_INET,SOCK_STREAM,0)) == -1)
{
printf("socket error/n");
exit(1);
}
their_addr.sin_family = AF_INET;/*host byte order*/
their_addr.sin_port = htons(atoi(getenv("MYPORT")));
their_addr.sin_addr = *((struct in_addr *)he->h_addr);
bzero(&(their_addr.sin_zero),8);/*zero the rest of the struct*/
if(connect(sockfd,(struct sockaddr *)&their_addr,sizeof(struct sockaddr)) == -1)
{
printf("socket connect error/n");
exit(1);
}
if((numbytes = recv(sockfd,buf,MAXDATASIZE,0)) == -1)
{
printf("socket recv error/n");
exit(1);
}
buf[numbytes] ='/0';
printf("Received,:%s",buf);
close(sockfd);
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: