维护回调函数之间的状态

时间:2012-01-15 20:16:42

标签: haskell pcap

改写

我是哈斯克尔的新手。我试图使用网络pcap包解析pcap文件。

我有字节流作为输入,所以我使用dispatchBS函数和我自己的回调函数。

我的目标是从所有回调中获得连锁结果。解析了所有数据包的[a]个。到目前为止,当dispatchBS在其签名中没有任何内容来维护到目前为止所解析的所有数据包的状态时,如何跟踪到目前为止所获得的所有数据包?

http://hackage.haskell.org/packages/archive/pcap/0.4.5/doc/html/Network-Pcap.html#t:CallbackBS

1 个答案:

答案 0 :(得分:1)

例如,您可以使用“循环”功能并提供自己的回调。此回调必须是IO操作,因此一个简单的解决方案是将其数据包参数附加到IORef中保存的序列(请参阅Data.Sequence)。收到足够的数据包后,只需阅读IOVar即可。或者你可以使用线程和队列做更复杂的事情,具体取决于你想要实现的目标。