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

问题描述

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.0rnHost:www.csdn.netrnrn";
send(so,message,strlen(message)+1,0);
char buf[1024]={0};
while(recv(so,buf,1024,MSG_PEEK)){
puts(buf);
memset(buf,0,1024);
}
}
就这样一直收不完,请问为什么
谢谢

解决方案

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

解决方案二:

http://download.csdn.net/detail/smallking2012/6298859

解决方案三:

HTTP GET 方式,你每次发送的 GET 指令都相同,接收到的内容是一样这很正常;接收到的不一样,个人认为才是不正常的。

解决方案四:

你fwencsdn,页面返回内容很多吧,你buf开大一点呢。这样i一次可以多处理一些。

时间: 2024-10-29 08:19:06

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

关于linux c语言多线程编程的问题

问题描述 关于linux c语言多线程编程的问题 /* 以生产者和消费者模型问题来阐述Linux线程的控制和通信你 生产者线程将生产的产品送入缓冲区,消费者线程则从中取出产品. 缓冲区有N个,是一个环形的缓冲池. */#include #include #define BUFFER_SIZE 16 struct prodcons{ int buffer[BUFFER_SIZE];/*实际存放数据的数组*/ pthread_mutex_t lock;/*互斥体lock,用于对缓冲区的互斥操作*/

c语言-linux C语言 send sendto recv recvfrom 的等价写法

问题描述 linux C语言 send sendto recv recvfrom 的等价写法 在linux中 send(s, buf, len, flags) 与 sendto(s, buf, len, flags, NULL, 0) 等价吗? recv(s, buf, len, flags) 与 recvfrom(s, buf, len, flags, NULL, 0) 等价吗? 解决方案 send,recv,sendto,recvfromsend,recv,sendto,recvfromse

linux c语言刷新cpu cache后,如果判断数据真正从cache拷贝到内存中了?

问题描述 linux c语言刷新cpu cache后,如果判断数据真正从cache拷贝到内存中了? linux c语言刷新cpu cache后,如果判断数据真正从cache拷贝到内存中了? 解决方案 用secureCRT看打印信息啊

多种语言socket编程集锦—win32

原文 http://www.blogjava.net/huyi2006/articles/263831.html 借此地方整理以下socket编程的多种语言的实现,socket可以跨平台的通信,因此多语言.多平台下的实现有必要了解的.代码都是源自网上,感谢网友的分享. socket编程在windows下的C语言实现,dev C++下编译通过编译时设置编译选项 工具-->编译选项-->编译器,勾选在连接器命令行加入以下命令,在对话框中填-lwsock32//server.c#include &l

c语言 socket编程-socket 编程问题(C语言)

问题描述 socket 编程问题(C语言) 客户端将要处理的文件/数据传输到服务器端,服务器端对此文本文件进行处理,并将结果传输给客户端,客户端进行显示. 我初学socket编程,请大家多指教.使用C语言 解决方案 没看懂你想问什么的 基于socket 的网络编程其实是很简单的,而且看你的意思是想使用C/S 架构的,因为是属于传输层面的东西,自然用到tcp.UDP ,很久没写这些东西了,可以告诉你,顺便回忆一下: 下面把网络连接的搭建过程给你说一下吧: 首先是client: 1.socket -

C语言socket编程开发应用示例_C 语言

实现步骤: 1. Server端 复制代码 代码如下: #include <stdio.h>                   //用于printf等函数的调用#include <winsock2.h>                //Socket的函数调用 #pragma comment (lib, "ws2_32")      //C语言引用其他类库时,除了.h文件外,还要加入对应的lib文件(这个不同于C#) 复制代码 代码如下: int main()

c语言 socket编程-C语言网络编程之listen函数的实现

问题描述 C语言网络编程之listen函数的实现 请教: listen函数方法实现,函数体是什么 我抄了一段代码为什么执行到listen函数这儿就不往下执行了也不报错

详解Linux的SOCKET编程_C 语言

本篇文章对Linux的SOCKET编程进行了详细解释文章后面分享了一个编程实例供大家学习. 1. 网络中进程之间如何通信 进程通信的概念最初来源于单机系统.由于每个进程都在自己的地址范围内运行为保证两个相互通信的进程之间既互不干扰又协调一致工作操作系统为进程通信提供了相应设施如 UNIX BSD有管道pipe.命名管道named pipe软中断信号signal UNIX system V有消息message.共享存储区shared memory和信号量semaphore)等. 他们都仅限于用在本

C语言实现Linux下的socket文件传输实例_C 语言

本文实例讲述了C语言实现Linux下的socket文件传输.分享给大家供大家参考.具体如下: server.c如下: //////////////////////////////////// //服务器代码 /////////////////////////////////// //本文件是服务器的代码 #include <netinet/in.h> // for sockaddr_in #include <sys/types.h> // for socket #include &