接收到的數據字節陣列接收packats該消息包含由標題= 0xFD和頁腳= deliniated 0xFE的使用LINQ,需要幫助分裂來自Silverlight的插座
// sample message packet with three
// different size messages
List<byte> receiveBuffer = new List<byte>();
receiveBuffer.AddRange(new byte[]
{ 0xFD, 1, 2, 0xFE,
0xFD, 1, 2, 3, 4, 5, 6, 7, 8, 0xFE,
0xFD, 33, 65, 25, 44, 0xFE});
// note: this sample code is without synchronization,
// statements, error handling...etc.
while (receiveBuffer.Count > 0)
{
var bytesInRange = receiveBuffer.TakeWhile(n => n != 0xFE);
foreach (var n in bytesInRange)
Console.WriteLine(n);
// process message..
// 1) remove bytes read from receive buffer
// 2) construct message object...
// 3) etc...
receiveBuffer.RemoveRange(0, bytesInRange.Count());
}
正如你可以看到,(包括多個消息頭/頁腳),該消息包中的第一條消息包含4個字節,第二條消息包含10個字節,a和第三條消息包含6個字節。
在while循環中,我期待TakeWhile添加不等於消息的頁腳部分的字節。
注意:由於我在讀取它們後刪除了字節,因此始終可以將標題置於位置「0」處。
我搜索了分割字節數組的示例,但沒有證明在未知和波動大小的數組上分裂。
任何幫助將不勝感激。 非常感謝!
乍一看,我看不出你發佈的代碼有什麼問題。這會產生什麼錯誤或問題? – 2010-05-18 20:02:37