wcf数据包如何编码减小到socket包的大小啊
我现在做了个wcf的程序,可测试的时候发现数据量比socket的大好几倍(8倍左右),不知道wcf的数据包是否可以减小到socket数据包到大小啊?该如何实现?我已经采用如下方式讲数据先序列化为二进制再压缩,但占用带宽只比不做下面的处理减少一半,好像只是压缩部分起了作用
// obj to byteCom[]
public byte[] ObjectToBufferCom(object obj)
{
using (MemoryStream ms = new MemoryStream())
{
IFormatter formatter = new BinaryFormatter();
formatter.Serialize(ms, obj);
byte[] buffer_all = ms.ToArray();
byte[] bytes_c = Compression(buffer_all, CompressionMode.Compress);
return bytes_c;
}
}
采用的协议是tcp,好像消息封装默认的就是二进制了吧?
wcf消息比socket的大几倍的主要原因是不是soap封装搞大的啊?
如果采用流点方式传送,是否soap封装的包就不会如此大?(流自己还没有测试,因为可能数据到达的及时性没tcp好)
请大家给我指点下吧?
非常感谢! --------------------编程问答-------------------- 你用WCF,,怎么搞到socket?为什么要把WCF的soap数据变这么小?有什么用途? --------------------编程问答-------------------- wcf本身就是对socket的的封装,怎么对微软的产品也想改了,呵呵,
最好直接用socket,我觉的是上策! --------------------编程问答-------------------- WCF使用soap Message传输数据。需要加很多标志,可定要比socket大了。
补充:.NET技术 , .NET Framework