将一个大的byte[]数组拆分多个byte数组
每次发送一个4KB的包,如果byte[]较大,则会拆分为多个包,下面的循环不会写了,我用的是.net2.0的程序,在网上搜索到的都是文件传输如:http://www.cnblogs.com/chenxizhang/archive/2009/06/29/1513445.html 单这个不符合我的程序。分完之后,我还要合并的。
byte[] data
int totalLen = data.Length;
byte[] fileblock = new byte[4096];
int temp = totalLen / 4096;
for (int i = 0; i < temp; i++)
{
fileblock = new byte[4096];
Array.Copy(data, i, fileblock, 0, data.Length - 4096);
}
下面是我在其他地方搜索到的一段代码http://bbs.csdn.net/topics/330162599
var result = tm.Aggregate(new List<List<byte>>(), (container, x) =>
{
if (container.Count == 0 || x == 94)
container.Add(new List<byte>());
else
container.Last().Add(x);
return container;
})
.Select(lst => lst.ToArray());
------解决方案-------------------- TCP会自动拆分的,UDP应该1024字节一个包才对。
------解决方案-------------------- 给Socket自动来做不就得了
------解决方案-------------------- 引用: public void Send ( Socket handler, byte[] data )
{
if (handler != null && handler.Connected)
{
try
{
handler.Send(data);
}
catch
{
}
}
}
这个data数据太大,在客户端接收的时候很慢哦,导致界面上显示也很慢。
由于data太大导致从服务器发送数据到客户端很慢。不知道大家有没有解决的方法哦。
界面显示不是等接收完之后再做?数据大导致速度慢这是不可避免的。
------解决方案--------------------