void Server::doReadHeader() { boost::asio::async_read(_socket, boost::asio::buffer(_recvBuf.data(), Packet::HEADER_LENGTH), [this](const boost::system::error_code& ec, size_t length) { if ( !ec && _recvBuf.decode() ) { doReadBody(); } }); }
void doReadHeader(){ boost::asio::async_read(_socket, boost::asio::buffer(_data, sizeof(MktDataGlobalHeaderMsg) + sizeof(char)), [this](boost::system::error_code ec, std::size_t length) { if (!ec) { MktDataGlobalHeaderMsg* header = new MktDataGlobalHeaderMsg; memcpy((void*)header, (void*)(_data), sizeof(MktDataGlobalHeaderMsg)); char* msgType = new char; memcpy((void*)msgType, (void*)(_data + sizeof(MktDataGlobalHeaderMsg)), sizeof(char)); std::cout << " Packet#: " << ++pcount << std::endl; doReadBody(header, msgType); } else { std::cout << "Exception comes - Socket Closed. " << std::endl; _socket.close(); } }); }