
Hello All, I am having trouble using boost:asio to send a simple struct message_header from server (linux) to the client (windows). typedef struct MessageHeader { uint32_t _data_length; //length of data attached uint8_t _message_type; //MESSAGE_TYPE uint8_t _segment_name; //SEGMENT_NAME uint16_t _request_id; //Request Id assigned by the client to the request to uniquely identify the request uint16_t _count_of_records; //Number of records affected by the operation, 0 means complete segment is affected. } MessageHeader; typedef struct Message { boost::array<char, header_length> _header_array; } Message Server side code (Linux): =============== MessageHeader request_header; request_header._data_length = 0; request_header._message_type = MSG_READ; request_header._segment_name = SEG_OOW; request_header._count_of_records = 0; request_header._request_id = 100; string _data_serialized = ""; uint8_t header[header_length]; //header_length is defined as 10 memcpy(header, (uint8_t*)(&(request_header)), header_length); std::vector<boost::asio::const_buffer> buffers; buffers.push_back(boost::asio::buffer(header, header_length)); buffers.push_back(boost::asio::buffer((_data_serialized).c_str(), _data_serialized.length())); boost::asio::async_write(_socket, buffers, boost::bind(&ClientSession::handle_write, shared_from_this(), boost::asio::placeholders::error)); Client Side code (Windows): ================ Message _read_message; MessageHeader _message_header; Handle_connect(....) { boost::asio::async_read(_socket, boost::asio::buffer(_read_msg._header_array, header_length), boost::bind(&DJClient::Handle_read_header, this, boost::asio::placeholders::error)); } Handle_read_header(...) { memcpy(&_message_header, read_msg._header_array.data(), header_length); } Surprisingly the same code works fine from "Windows to Windows" and "Windows to linux" but has problem when used on "Linux to Windows". When sent from Linux server, Windows server receives garbage data. Sending of normal ASCII characters from Linux to Windows work fine. Please help if anyone can. Thanks and Regards, Anil Agrawal