小白刚接触socket编程,很多没搞清的地方。
我用如下代码
#include <stdlib.h>
#include <stdio.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <string.h>
#include <arpa/inet.h>
#include <sys/types.h>
#include <unistd.h>
#include <netdb.h>
int main() {
int so=socket(AF_INET,SOCK_STREAM,0),r;
sockaddr_in addr;
hostent *hp;
hp=gethostbyname("www.csdn.net");
addr.sin_addr.s_addr=*((unsigned long*)hp->h_addr);
addr.sin_family=AF_INET;
addr.sin_port=htons(80);
connect(so,(sockaddr*)&addr,sizeof(sockaddr));
char message[200]="GET / HTTP/1.0\r\nHost:www.csdn.net\r\n\r\n";
send(so,message,strlen(message)+1,0);
char buf[20000]={0};
r=recv(so,buf,20000,MSG_PEEK);
printf("r %d\n%s",r,buf);
}
1、看见recv返回的只有1400,所以buf没有把完整的网页源代码记录下来,只有一部分,请问为什么
2、如果换一个网站,比如www.stateair.net,会出现404错误,但浏览器就可以打开,请问为什么
谢谢