Make prefix size endian-independent for protobuf objects.
This commit is contained in:
parent
8da6052c9e
commit
73be1ac218
|
@ -8,6 +8,7 @@
|
|||
|
||||
#include <iostream>
|
||||
#include <string>
|
||||
#include <arpa/inet.h>
|
||||
|
||||
#include "asio.hpp"
|
||||
#include "clipp.h"
|
||||
|
@ -88,7 +89,7 @@ int main(int argc, char* argv[])
|
|||
std::string output;
|
||||
command.SerializeToString(&output);
|
||||
|
||||
uint32_t size{static_cast<uint32_t>(output.size())};
|
||||
uint32_t size{htonl(static_cast<uint32_t>(output.size()))};
|
||||
asio::write(socket, asio::buffer(&size, 4));
|
||||
asio::write(socket, asio::buffer(output.data(), output.size()));
|
||||
|
||||
|
|
|
@ -16,6 +16,7 @@
|
|||
#include <thread>
|
||||
#include <memory>
|
||||
#include <cctype>
|
||||
#include <arpa/inet.h>
|
||||
|
||||
#include "asio.hpp"
|
||||
#include "clipp.h"
|
||||
|
@ -179,6 +180,8 @@ public:
|
|||
auto buffer{asio::buffer(&size, 4)};
|
||||
asio::read(socket_, buffer, asio::transfer_exactly(4), error_code);
|
||||
if (error_code) { break; }
|
||||
|
||||
size = ntohl(size);
|
||||
}
|
||||
|
||||
std::string data(size, '\0');
|
||||
|
|
Reference in a new issue