UDP数据包安排

Nav*_*vin 2 c++ p2p udp packets boost-asio

我使用Boost C++实现了一个P2P应用程序.因为你没有UDP不保证数据包顺序甚至数据包传递,所以我想到:

将所有收到的UDP数据包放入链接列表中的一个请求并正确排序,以便可以以健壮的方式识别序列和丢失的数据包.链接列表使用struct.或者
我想把它放在一个向量中并在一个单独的线程中将数据包安排在向量中.

哪一个是最好的方法?或者除了窗口滑动之外你还有其他最好的方法吗?

Som*_*ude 6

而不是实现自己的容器或排序,为什么不使用标准库中已有的容器?

例如,您可以使用std::map序列号作为键.它会按键自动排序.

或者您可以使用std::priority_queue自己的比较函数来检查序列号.

您还应该查看UPnP NAT遍历.