zoukankan      html  css  js  c++  java
  • WCF 提高传输数据性能方法 补

    纪念Google.cn 正式离我们而去... 

    上一篇:WCF提高传输数据性能方法之二 (数据分割)

    前面两篇WCF提高传输性能的文章中提到的两个方法是可以合并在一起使用的。
    另外补一下传输DataSet的代码

    服务端
    private byte[] buffer = null;
    private int bufferSize = 10000;
    private long stream_length;

    private MemoryStream stream;


    private void InitDataSet(DataSet ds)
    {
    IFormatter formatter
    = new BinaryFormatter();
    stream
    = new MemoryStream();
    formatter.Serialize(stream, ds);
    stream.Position
    = 0;
    stream_length
    = stream.Length;
    }
    public byte[] GetBuffer()
    {
       
    if (buffer != null)
           
    return buffer;
       
    else
           
    return null;
    }

    public bool ReadBuffer()
    {
       
    bool exist;
       
    if (stream_length > 0)
        {
           
    if (stream_length > bufferSize)
            {
                buffer_currect
    = new byte[bufferSize];
                stream.Read(buffer,
    0, bufferSize);
                stream_length
    -= bufferSize;
            }
           
    else
            {
                buffer_currect
    = new byte[stream_length];
                stream.Read(buffer,
    0, (int)stream_length);
                stream_length
    = 0;
            }
            exist
    = true;
        }
       
    else
        {
            exist
    = false;
        }
       
    return exist;
    }
    客户端
    using (DataClient client = new DataClient())
    {
    MemoryStream stream
    = new MemoryStream();
    byte[] buffer;
    while (client.ReadBuffer())
    {
    buffer
    = client.GetBuffer();
    stream.Write(buffer,
    0, buffer.Length);
    }
    stream.Position
    = 0;
    IFormatter formatter
    = new BinaryFormatter();
    DataSet ds
    = (DataSet)formatter.Deserialize(stream);
    stream.Close();
    client.Close();
    return ds;
    }
  • 相关阅读:
    .NET Task揭秘(一)
    .net线程池内幕
    Branch 向量化
    让你的gdb print 更可读
    获取web项目的绝对路径的方法总结
    Android事件监听(一)——简介篇
    Android事件监听(二)——点击鼠标事件
    jsp运行环境的安装和配置
    log4j中的DailyRollingFileAppender日志输出器工作原理
    开发环境搭建
  • 原文地址:https://www.cnblogs.com/stangray/p/1692535.html
Copyright © 2011-2022 走看看