Я хочу сериализовать и отправить некоторые данные по протоколу UDP.Код выглядит следующим образом:
typedef struct{
uint8_t a[2];
uint8_t b;
}example;
std::vector<example> ex_vector; //Filling part of this vector is notgiven here
void sendUDP(){
int sockfd;
sockfd = socket(AF_INET,SOCK_DGRAM,0);
struct sockaddr_in serv;
serv.sin_family = AF_INET;
serv.sin_port = htons(5005);
serv.sin_addr.s_addr = inet_addr("127.0.0.1");
//const uint8_t buffer[2] = {0x12, 0x13}; -> Works well with this
auto mutable_buffer = boost::asio::buffer(ex_vector);
socklen_t m = sizeof(serv);
sendto(sockfd,mutable_buffer,sizeof(mutable_buffer),0,(struct sockaddr *)&serv,m);
}
Как я могу сериализовать вектор элемента POD (example
), используя boost?Код для UDP взят из (http://www.cplusplus.com/forum/unices/76180/).
В настоящее время выскакивает ошибка:
no matching function for call to 'sendto'
sendto(sockfd,mutable_buffer,sizeof(mutable_buffer),0,(struct sockaddr *)&serv,m);