size = nsgsout.Read(buf, 0, 2);
while (size != 2)
{
size += nsgsout.Read(buf, size, 2 - size);
}
temp = (buf[0] + buf[1] * 256);
size = nsgsout.Read(buf, 2, temp - 2);
while (size != temp - 2)
{
size += nsgsout.Read(buf, size + 2, temp - size + 2);
}
答案 0 :(得分:5)
我认为这不符合您的想法:
temp - size+2
我怀疑你的意思是:
temp - (size + 2)
但它确实等同于
(temp - size) + 2
我怀疑你真的希望这个电话是:
size += nsgsout.Read(buf, size + 2, temp - size - 2);
另请注意,您可以更改此内容:
size = nsgsout.Read(buf, 2, temp - 2);
到
size = 0;
然后进入循环并让第一次读取......
答案 1 :(得分:0)
2尺寸可以是负数。您可能需要读取大小 - 2而不是?!