[問題] 如何實作可回收空間的Queue?
目標:
======
我要實作一個queue的行為,以接收網路傳來的封包
資料不斷被新增至該queue,
但我會有一個parser去過濾資料,
已處理過的資料即可至queue中移除。
想法:
======
1.
首先我採用MemoryStream物件不斷加入資料
也可以用Read(buffer, count)來讀資料
Position會不斷成長,
但MemoryStream無法移除已處理過的資料
這會造成記憶體最終爆掉 ==> 不可行!
2.
使用List<byte>來加入資料,它可以一次AddRange(byte[])
也可以RemoveRange(),看起來似乎可行。
但該list在讀取資料時是一個byte持續去讀,非常不方便
看起來也不可行... (讀取資料作parsing很重要)
問題:
=====
基於以上的想法及疑慮,不曉得先進們有否好的解法?
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 122.146.5.194
推
03/08 02:43, , 1F
03/08 02:43, 1F
→
03/08 02:51, , 2F
03/08 02:51, 2F
→
03/08 02:55, , 3F
03/08 02:55, 3F
推
03/08 04:13, , 4F
03/08 04:13, 4F
推
03/08 04:29, , 5F
03/08 04:29, 5F
→
03/08 14:05, , 6F
03/08 14:05, 6F
→
03/08 14:05, , 7F
03/08 14:05, 7F
→
03/08 14:06, , 8F
03/08 14:06, 8F
→
03/08 14:10, , 9F
03/08 14:10, 9F
→
03/08 14:13, , 10F
03/08 14:13, 10F
→
03/08 14:17, , 11F
03/08 14:17, 11F
推
03/09 01:11, , 12F
03/09 01:11, 12F
→
03/09 22:06, , 13F
03/09 22:06, 13F
→
03/09 22:09, , 14F
03/09 22:09, 14F
→
03/15 18:16, , 15F
03/15 18:16, 15F
→
03/15 18:17, , 16F
03/15 18:17, 16F