#include"fun.h"
int main(int argc,char **argv){ int sockfd,l; struct sockaddr_in servaddr; char buf[1024]; sockfd=socket(PF_INET,SOCK_STREAM,0);
printf("socket ok/n"); bzero(&servaddr,sizeof(servaddr)); servaddr.sin_family=PF_INET; servaddr.sin_addr.s_addr=inet_addr("192.168.1.135"); servaddr.sin_port=htons(8882); if((connect(sockfd,(struct sockaddr *)&servaddr,sizeof(servaddr)))<0) { perror("connect"); return -1; } l=read(sockfd,buf,sizeof(buf)); buf[l]=0; printf("%s/n",buf); close(sockfd);}上面只是一个很简单的tcp的客户端的程序,但是因为我一开始没有写htons(将一个16位整数主机字节序转换成网络字节序),程序运行后一直显示connect: Connection refused,我看过书上说htons(INADDR_ANY)时,htons可有可无。我以为在这个地方也是可有可无,结果导致逻辑上的错误;细节决定成败,此话应谨记在心;