⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 readytoread.cc

📁 2007年机器人足球世界杯3D仿真组亚军
💻 CC
字号:
#include "monitorserver.hh"#include <sstream>#include <iostream>using namespace std;using namespace bats;bool MonitorServer::ready_to_read(SocketInfo &info){  if (info.data == 0)    return false;  Data* data = reinterpret_cast<Data*>(info.data);    // Read in from socket  char buffer[2048];  int len;  unsigned bufferLeft = 2048 - data->bufLen;  while ((len = info.socket.read(buffer, bufferLeft)) && bufferLeft != 0)  {    if (len == -1)      break;    memcpy(data->buffer + data->bufLen, buffer, len );    data->bufLen += len;    bufferLeft = 2048 - data->bufLen;  }    string b(data->buffer, data->buffer + data->bufLen);    // Process buffer  while (data->bufLen > 0)  {    uint32_t size;    memcpy(&size, data->buffer, sizeof(size));    if (data->bufLen >= size + sizeof(size))    {      string msg(data->buffer + sizeof(size), data->buffer + sizeof(size) + size);      memmove(data->buffer, data->buffer + sizeof(size) + size, data->bufLen - (sizeof(size) + size));      data->bufLen -= sizeof(size) + size;      parseMessage(*reinterpret_cast<Data*>(info.data), msg);    }    else      break;  }    return false; // returns false, to stay in read mode.}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -