linux c语言 socket编程 recv每次收到一样的数据-问答-阿里云开发者社区-阿里云

开发者社区> 问答> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

linux c语言 socket编程 recv每次收到一样的数据

#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
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[1024]={0};
while(recv(so,buf,1024,MSG_PEEK)){
puts(buf);
memset(buf,0,1024);
}
}

就这样一直收不完,请问为什么
谢谢

展开
收起
杨冬芳 2016-07-11 17:24:32 2840 0
1 条回答
写回答
取消 提交回答
  • 杨冬芳
    IT从业

    Please Don't use "MSG_PEEK",If you use it ,you will recv the same message !!!

    2019-07-17 19:54:26
    赞同 展开评论 打赏
问答排行榜
最热
最新
相关电子书
更多
Linux系统通过fail2ban对暴力破解进行防护
立即下载
从 Linux 系统内核层面来解决实际问题的实战经验
立即下载
从Linux系统内核层面来解决实际问题的实战经验
立即下载