zoukankan      html  css  js  c++  java
  • WCF 提高传输数据性能方法之二 (数据分割)

    上一篇:WCF 提高传输数据性能方法之一 (使用压缩)

    在WCF中分批发送和接收数据来实现提高网络传输性能

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

    public void GetFile(string path)
    {
    stream
    = new FileStream(path, FileMode.Open, FileAccess.Read, FileShare.ReadWrite);
    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())
    {
    client.GetFile(
    "e:\\docx.rar");
    FileStream stream
    = new FileStream("d:\\docx.rar", FileMode.CreateNew);
    byte[] buffer;
    while (client.ReadBuffer())
    {
    buffer
    = client.GetBuffer();
    stream.Write(buffer,
    0, buffer.Length);
    }
    stream.Close();
    client.Close();
    }
  • 相关阅读:
    css3
    jquery常用的几种配置
    1808第一周笔记
    webpack打包的用法
    模块的使用及几类方式
    node的规范(common.js)
    模块化开发
    传统开发模式的缺点
    创建百度地图
    离线缓存总结
  • 原文地址:https://www.cnblogs.com/stangray/p/1692523.html
Copyright © 2011-2022 走看看