使用Lidgren从二进制文件中保存的包创建NetIncomingMessage

时间:2015-11-24 09:19:46

标签: networking package lidgren

我正在使用Lidgren网络库来创建实时多人游戏。

我要做的是,将所有传入的包(包括所有字节)保存到二进制文件中的对等体。后来当我需要调试一些奇怪的网络行为时,我可以加载这个文件并让它按顺序加载所有(或重建)它保存的包。通过这种方式,我可以找到奇怪的行为是如何发生的。

我的问题是,当我从文件中加载它时,如何重新创建此包?

我认为这是一个我需要重新创建的NetIncomingMessage,到目前为止,我想到要么重新创建它,要么将NetOutgoingMessage发送给自己,所以如果第一种方法,它希望具有我想要实现的相同效果失败。

1 个答案:

答案 0 :(得分:0)

我解决这个问题的方法是创建一个NetIncomingMessage的接口(包装器对象),它包含一个数据字节数组和其他数据成员,并且有一个线程根据保存的传入时间填充这些对象的列表,从另一个线程请求和删除(出列)。 见https://en.wikipedia.org/wiki/Producer%E2%80%93consumer_problem