当前位置: 技术问答>linux和unix
EPOLL做高并发服务器,接收时出现数据丢失
来源: 互联网 发布时间:2017-04-04
本文导语: #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include ...
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
using namespace std;
#define LISTENQ 5
#define OPEN_MAX 1024
#define SERV_PORT 10000
#define MAX_LINE 1024
#define INFTIM -1
#define MAXEVENTS 1000
boost::circular_buffer cb(500);
boost::circular_buffer::iterator it;//申明一个迭代器it
char buf[1024];
void srv_echo(int clientfd)
{
bzero(buf,1024);
int r=recv(clientfd,buf,sizeof(buf),0);
if(r>0)
{
//处理数据
buf[r]='';
printf("来自客户端的数据:%sn",buf);
cb.push_back(buf);
}else if(r==0){
//没有可用的数据
printf("客户退出n");
int sum=cb.size();
for(it=cb.begin();it!=cb.end();it++)
{
cout
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
using namespace std;
#define LISTENQ 5
#define OPEN_MAX 1024
#define SERV_PORT 10000
#define MAX_LINE 1024
#define INFTIM -1
#define MAXEVENTS 1000
boost::circular_buffer cb(500);
boost::circular_buffer::iterator it;//申明一个迭代器it
char buf[1024];
void srv_echo(int clientfd)
{
bzero(buf,1024);
int r=recv(clientfd,buf,sizeof(buf),0);
if(r>0)
{
//处理数据
buf[r]='';
printf("来自客户端的数据:%sn",buf);
cb.push_back(buf);
}else if(r==0){
//没有可用的数据
printf("客户退出n");
int sum=cb.size();
for(it=cb.begin();it!=cb.end();it++)
{
cout