当前位置:编程学习 > C#/ASP.NET >>

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
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,