【发布时间】:2015-06-01 03:38:34
【问题描述】:
我正在尝试构建一个代理来根据一些时间表缓冲一些数据包。
我有两个 TCP 连接,一个从主机 A 到代理,另一个从代理到主机 B。 代理在 A 和 B 之间转发数据包。代理将根据预定的指令缓存数据包。在某个时间,它会缓冲数据包。缓冲期结束后,它将转发缓冲区中的数据包,并进行正常的转发工作。 我正在使用python。在这种情况下,哪个模块是最好的?我试过泡菜,但很难在文件中删除和附加元素。有什么建议?谢谢!
【问题讨论】:
-
是否有一个简单的列表不够的原因?因为它会占用太多内存?你考虑过
tempfile吗? -
@jedwards 代理上的两个 TCP 连接是两个独立的 python 脚本。所以,我需要将数据包存储在一个单独的文件中。我不熟悉临时文件。 tempfile 可以部分追加和删除吗?
-
追加是的,删除不是那么容易,但肯定是可行的。
-
@jedwards 我明白了。因为数据包转发后,我想清理缓冲区。这就是我想删除内容的原因。有没有其他方法可以做到这一点?
-
如果你想一次性彻底清空缓冲区,那很简单,删除文件或者以
w打开然后关闭。如果你想一次删除一个特定的行,它更难但并非不可能 - 它通常通过只用你想要保留的行重写整个文件来完成(就地或第二个文件,你然后在所有行都写完后用于替换原始文件)