我做了我的UDP服务器和客户端的boost :: ASIO UDP套接字接收。在我开始发送更多数据报之前,一切看起来都很好他们正确地从客户端到服务器。但是,他们在我的缓冲中融合成一个信息。如何分割与升压ASIO UDP套接字团结报
我使用
udp::socket::async_receive
与std::array<char, 1 <<18>
缓冲
用于制造异步请求。并通过回调
void on_receive(const error_code& code, size_t bytes_transferred)
接收数据。如果我发送数据往往(每10毫秒),我同时收到几个到数据包缓冲区我用的回调以上。问题是 - 如何分开他们?注意:我的UDP数据报有可变长度。我不想在大小上使用附加头,因为它会使我的代码对第三方数据报无用。
你能告诉你的代码? – 2012-07-20 18:32:50
在'on_receive'消息中使用用户提供的回调函数,该函数处理单个接收数据包中包含的所有消息。 – Chad 2012-07-23 14:45:35
当然,它可以在这里找到:[udp2tcp_tunnel](https://github.com/valery-l/udp2tcp_tunnel)。它正在进行中 - 还有一个乒乓服务器(通过TCP从客户端发送,通过UDP从服务器接收相同的测试消息)。在我看来,我发现了这个问题。如果我在**缓存器中的**派几个缓冲区由“basic_datagram_socket :: async_send_to(buffer_sequence,处理程序)”,它会来的** **一个数据报(不** **一个对数据报**每个缓冲区* *)。 – 2012-07-23 14:57:33