- 论坛徽章:
- 0
|
connect函数总是失败,返回-1
if((t=connect(sockfd,(struct sockaddr *)(&addr),sizeof(struct sockaddr)))==-1){
herror("connect");
exit(1);
}
|
全部代码:
#include <fstream>
#include <sys/socket.h>
#include <netdb.h>
#include <string>
#include <arpa/inet.h>
using namespace std;
int main()
{
char s[]="www.douban.com",src[100];
struct hostent *ph,*h,kkk;
int t;
ph=&kkk;
if((ph=gethostbyname("www.douban.com"))==NULL){
herror("gethostbyname");
exit(1);
}
int sockfd;
if(sockfd=socket(AF_INET,SOCK_STREAM,0)<0){
perror("socket");
exit(1);
}
struct sockaddr_in addr;
addr.sin_family=AF_INET;
addr.sin_port=htons(80);
addr.sin_addr=*((struct in_addr *)(ph->h_addr));
memset(addr.sin_zero,0,8);
// printf("address: %s \n",inet_ntop(AF_INET,&addr.sin_addr.s_addr,src,100));
printf("address: %s \n",inet_ntoa(addr.sin_addr));
if((t=connect(sockfd,(struct sockaddr *)(&addr),sizeof(struct sockaddr)))==-1){
herror("connect");
exit(1);
}
strcpy(src,"GET /index.html HTTP/1.1");
send(sockfd,src,strlen(src),0);
src[0]='\n';
send(sockfd,src,strlen(src),0);
while(recv(sockfd,src,100,0)){
cout<<src<<endl;
}
return 0;
} |
|
|