本文整理汇总了C++中CByteBuffer::set_BufferSize方法的典型用法代码示例。如果您正苦于以下问题:C++ CByteBuffer::set_BufferSize方法的具体用法?C++ CByteBuffer::set_BufferSize怎么用?C++ CByteBuffer::set_BufferSize使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CByteBuffer
的用法示例。
在下文中一共展示了CByteBuffer::set_BufferSize方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: ReceiveData
void ReceiveData(CTcpClient* tcpClient, CStringBuffer& buffer)
{
CScopedLock _lock;
CStringBuffer responseString;
CByteBuffer responseBuffer;
dword numDataReceived = 0;
dword totalDataReceived = 0;
CStringConstIterator itB;
CStringBuffer sBuffer;
dword numData;
for ( ; totalDataReceived < 10; )
{
responseBuffer.set_BufferSize(__FILE__LINE__ totalDataReceived + MAX_BUFFER);
_lock.unlock();
tcpClient->ReceiveData(responseBuffer.get_Buffer() + totalDataReceived, MAX_BUFFER, &numDataReceived);
totalDataReceived += numDataReceived;
_lock.lock();
responseBuffer.set_BufferSize(__FILE__LINE__ totalDataReceived);
}
responseString.convertFromByteBuffer(responseBuffer);
itB = responseString.GetString();
buffer = responseString;
if ( (itB[0] == _T('#')) && (itB[1] == _T('#')) && (itB[7] == _T('#')) && (itB[8] == _T('#')) )
{
responseString.SubString(2, 5, sBuffer);
if ( sBuffer.ScanString(_T("%u"), &numData) <= 0 )
return;
}
else
return;
for ( ; totalDataReceived < (10 + numData); )
{
responseBuffer.set_BufferSize(__FILE__LINE__ totalDataReceived + MAX_BUFFER);
_lock.unlock();
tcpClient->ReceiveData(responseBuffer.get_Buffer() + totalDataReceived, MAX_BUFFER, &numDataReceived);
totalDataReceived += numDataReceived;
_lock.lock();
responseBuffer.set_BufferSize(__FILE__LINE__ totalDataReceived);
}
responseString.convertFromByteBuffer(responseBuffer);
responseString.SubString(10, numData, buffer);
}