• 大小: 6KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-01-03
  • 语言: 其他
  • 标签:

资源简介

自己实现了一个环形缓冲区的简单类,并且做了一个TCP 服务端对这个类进行了用法演示

资源截图

代码片段和文件信息

#include “StdAfx.h“
#include “CycleBuffer.h“

CCycleBuffer::CCycleBuffer(int size)
{
InitializeCriticalSection(&m_cs);
m_nBufSize = size;
m_nReadPos = 0;
m_nWritePos = 0;
m_pBuf = (char *)calloc(1 size);
m_bEmpty = TRUE;
m_bFull = FALSE;
}

CCycleBuffer::~CCycleBuffer()
{
if(m_pBuf)
{
free(m_pBuf);
m_pBuf = NULL;
}
DeleteCriticalSection(&m_cs);
}

/****************************************
 向缓冲区写入数据
 返回值:
  -1 写入出错
  >=0 写入的字节数
****************************************/
unsigned int CCycleBuffer::WriteBuffer(char* buf unsigned int count)
{
EnterCriticalSection(&m_cs);

int ret = -1;

// 缓冲区已满,或希望写入的字节是0
if(m_bFull || count <= 0) 
{
ret = 0;
}
else if(m_nReadPos <= m_nWritePos)
{
/*
1. m_nReadPos == m_nWritePos
    

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件       6645  2013-11-04 11:43  TCPServer.cpp

     文件        830  2013-03-21 16:05  TCPServer.h

     文件       6364  2013-11-04 11:25  CycleBuffer.cpp

     文件        597  2013-03-21 16:05  CycleBuffer.h

     文件        761  2013-11-04 11:43  NetProtocal.h

     文件       1811  2013-03-21 16:05  TCPBufferManager.cpp

     文件       1035  2013-03-21 16:05  TCPBufferManager.h

----------- ---------  ---------- -----  ----

                18043                    7


评论

共有 条评论