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();
                                }
                            });
}
Esempio n. 2
0
	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();
			}
				});
	}