为什么 这个c语言写的socket程序没有成功访问到百度?
#include<stdio.h>
#include<string.h>
#include<winsock2.h>
char buff[2001];
int main()
{
WSADATA wsaData;
WSAStartup(MAKEWORD(2, 0), &wsaData);
//我也不知道干什么的
int sockfd=socket(AF_INET,SOCK_STREAM,0);//用的socket
struct sockaddr_in dest_addr; //要访问的地址信息
int size;
char s[]="GET / HTTP/1.1\r\n""Host:www.baidu.com\r\nUser-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7.6)Gecko/20050225 Firefox/1.0.1Connection: Keep-Alive\r\n";
//http的get方法的报头
dest_addr.sin_family=AF_INET;
dest_addr.sin_port=htons(80);
dest_addr.sin_addr.s_addr=inet_addr("61.135.169.121");
memset(dest_addr.sin_zero,0,8);
//对目标地址信息进行填充, ip地址是ping出来的
connect(sockfd,(struct sockaddr*)&dest_addr,sizeof(struct sockaddr));
//进行连接
printf("connect success");
send(sockfd,s,sizeof(s),0);
buff[recv(sockfd,buff,2000,0)]=0;
printf("%s",buff);
closesocket(sockfd);
return 0;
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
你的connect success没打印可能是因为在IO缓冲中了,
使用
或者
应该都可以。
至于没有返回内容,可能是GET请求不对吧