#include "unp.h"
int main(int argc , char**argv)
{
int sockfd , n; //sockfd套接字描述符
char recvline[MAXLINE + ];
struct sockaddr_in servaddr;
/\*sockaddr\_in={
\* short sin\_family; 地址族
\* unsigned short sin\_port; 端口号,必须采用网络数据格式,可用htons()函数将数字转换为网络数据格式
\* struct in\_addr sin\_addr; Ip地址
\* unsigned char sin\_zero\[8\];
\*/
if (argc != )
err\_quit("usage: a.out <IPaddress>");
if ((sockfd = socket(AF\_INET,SOCK\_STREAM,)) < )
err\_sys("socket error");
bzero(&servaddr,sizeof(servaddr));//将servaddr置0
servaddr.sin\_family = AF\_INET;
servaddr.sin\_port = htons();//将数字转换为网络数据格式
if (inet\_pton(AF\_INET,argv\[\],&servaddr.sin\_addr) <= )
err\_quit("inet\_pton error for %s",argv\[\]);
if (connect(sockfd,(SA \*) &servaddr,sizeof(servaddr)) < )
err\_sys("connect error");
while ( (n = read(sockfd,recvline,MAXLINE)) > ){// read函数读取服务器的应答,并使用fputs输出结果
recvline\[n\] = ;
if ( fputs(recvline,stdout) == EOF)
err\_sys("fputs error");
}
if (n < )
err\_sys("read error");
exit();
}
第18行socket函数原型为int socket(int af ,int type , int protocal);
第24行的inet_pton函数原型为int inet_pton(int af , const char* src , void *dst);
第26行的connect函数原型为 int connect(int s, const struct sockaddr * name, int namelen);
手机扫一扫
移动阅读更方便
你可能感兴趣的文章