问题描述
我想问一下,是否有可能从boost :: asio :: ip :: ip :: udp :: socket将数据直接插入标准BSD套接字中的结构中:
struct T;
size = recv(sock,&T,sizeof(T));
由于我收到很多固定大小的数据,所以我真的不想先将数据复制到缓冲区中,然后再从那里复制到结构中。如果这不容易实现,我将再次使用标准的BSD插槽。 Struct是可序列化的,此刻此刻不应该引起关注。
解决方法
socket.receive(boost::asio::buffer((void *)&T,sizeof(T)));