接收到的数据字节阵列接收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