⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 form1.cs

📁 WCF大数据量传输解决方案源码下载,WCF大数据量传输解决方案源码下载
💻 CS
字号:
using System;
using System.Collections.Generic;
using System.IO;
using System.IO.Compression;
using System.Runtime.Serialization;
using System.Runtime.Serialization.Formatters.Binary;
using System.ComponentModel;

using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
///日期:2008-04-16
///作者:旋风
///来自:http://cnblogs.com/xuanfeng
namespace WCFDataTransfersClient
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
           //实例化WCF客户端
            DataTransfersClient client = new DataTransfersClient();
            MemoryStream stream = new MemoryStream();
            byte[] buffer;
            //获取所用块压缩流,并组装
            while(client.ReadNextBuffer()) 
            {
                buffer = client.GetCurrentBuffer();
                stream.Write(buffer,0,buffer.Length);
            }
            stream.Position = 0;
            buffer= new byte[stream.Length] ;
            stream.Read(buffer,0,buffer.Length);
            stream.Close();
            //解压压缩流
            byte[] bytes = Compression(buffer,CompressionMode.Decompress);
            stream = new MemoryStream(bytes);
            IFormatter formatter = new BinaryFormatter();
            //反序列化
            DataSet ds=(DataSet) formatter.Deserialize(stream);
            stream.Close();
            this.dataGridView1.DataSource = ds;
            this.dataGridView1.DataMember="test";
            this.label1.Text = ds.Tables[0].Rows.Count.ToString();
            client.Close();

            

        }
        private byte[] Compression(byte[] data, CompressionMode mode)
        {
            DeflateStream zip = null;
            try
            {
                if (mode == CompressionMode.Compress)
                {
                    MemoryStream ms = new MemoryStream();
                    zip = new DeflateStream(ms, mode, true);
                    zip.Write(data, 0, data.Length);
                    zip.Close();
                    return ms.ToArray();
                }
                else
                {
                    MemoryStream ms = new MemoryStream();
                    ms.Write(data, 0, data.Length);
                    ms.Flush();
                    ms.Position = 0;
                    zip = new DeflateStream(ms, mode, true);
                    MemoryStream os = new MemoryStream();
                    int SIZE = 1024;
                    byte[] buf = new byte[SIZE];
                    int l = 0;
                    do
                    {
                        l = zip.Read(buf, 0, SIZE);
                        if (l == 0) l = zip.Read(buf, 0, SIZE);
                        os.Write(buf, 0, l);
                    } while (l != 0);
                    zip.Close();
                    return os.ToArray();
                }
            }
            catch
            {
                if (zip != null) zip.Close();
                return null;
            }
            finally
            {
                if (zip != null) zip.Close();
            }
        }
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -