zoukankan      html  css  js  c++  java
  • 亿众国际点对点文件传输程序

    ////////////////////////////////////////////////////////////////////////////////
    //Author: stardicky                                                           //
    //E-mail: stardicky@hotmail.com                                               //
    //QQNumber: 9531511                                                           //
    //CompanyName: Ezone International                                            //
    //Class: HBS-0308                                                             //
    //title: 亿众国际点对点文件传输程序                                           //
    ////////////////////////////////////////////////////////////////////////////////

    //////////////////////////Begin-亿众国际发送端//////////////////////////////////
    using System;
    using System.Drawing;
    using System.Collections;
    using System.ComponentModel;
    using System.Windows.Forms;
    using System.Data;
    using System.IO;
    using System.Net;
    using System.Net.Sockets;
    using System.Threading;

    namespace 亿众国际发送端
    {
     
    /// <summary>
     
    /// Form1 的摘要说明。
     
    /// </summary>
     public class EzoneSend : System.Windows.Forms.Form
     {
      
    private System.Windows.Forms.GroupBox groupBox1;
      
    private System.Windows.Forms.OpenFileDialog openFileDialog1;
      
    private System.Windows.Forms.TextBox textBox1;
      
    private System.Windows.Forms.Button button1;
      
    private System.Windows.Forms.Label label1;
      
    private System.Windows.Forms.TextBox textBox2;
      
    private System.Windows.Forms.Label label2;
      
    private System.Windows.Forms.TextBox textBox3;
      
    private System.Windows.Forms.GroupBox groupBox2;
      
    private System.Windows.Forms.Label label3;
      
    private System.Windows.Forms.TextBox textBox4;
      
    private System.Windows.Forms.Label label4;
      
    private System.Windows.Forms.TextBox textBox5;
      
    private System.Windows.Forms.GroupBox groupBox3;
      
    private System.Windows.Forms.GroupBox groupBox4;
      
    private System.Windows.Forms.Button button2;
      
    private System.Windows.Forms.Label label5;
      
    private System.Windows.Forms.TextBox textBox6;
      
    private System.Windows.Forms.Label label6;
      
    private System.Windows.Forms.Label label7;
      
    private System.Windows.Forms.ProgressBar progressBar1;
      
    private System.Windows.Forms.TextBox textBox7;
      
    private System.Windows.Forms.Label label8;
      
    private System.Windows.Forms.Label label9;
      
    private System.Windows.Forms.TextBox textBox8;
      
    private System.Windows.Forms.Label label10;
      
    private System.Windows.Forms.TextBox textBox9;
      
    private System.Windows.Forms.Label label11;
      
    private System.Windows.Forms.Label label12;
      
    private System.Windows.Forms.TextBox textBox10;
      
    /// <summary>
      
    /// 必需的设计器变量。
      
    /// </summary>
      private System.ComponentModel.Container components = null;

      
    public EzoneSend()
      {
       
    //
       
    // Windows 窗体设计器支持所必需的
       
    //
       InitializeComponent();

       
    //
       
    // TODO: 在 InitializeComponent 调用后添加任何构造函数代码
       
    //
      }

      
    /// <summary>
      
    /// 清理所有正在使用的资源。
      
    /// </summary>
      protected override void Dispose( bool disposing )
      {
       
    if( disposing )
       {
        
    if (components != null
        {
         components.Dispose();
        }
       }
       
    base.Dispose( disposing );
      }

      
    #region Windows 窗体设计器生成的代码
      
    /// <summary>
      
    /// 设计器支持所需的方法 - 不要使用代码编辑器修改
      
    /// 此方法的内容。
      
    /// </summary>
      private void InitializeComponent()
      {
       
    this.groupBox1 = new System.Windows.Forms.GroupBox();
       
    this.openFileDialog1 = new System.Windows.Forms.OpenFileDialog();
       
    this.textBox1 = new System.Windows.Forms.TextBox();
       
    this.button1 = new System.Windows.Forms.Button();
       
    this.label1 = new System.Windows.Forms.Label();
       
    this.textBox2 = new System.Windows.Forms.TextBox();
       
    this.label2 = new System.Windows.Forms.Label();
       
    this.textBox3 = new System.Windows.Forms.TextBox();
       
    this.groupBox2 = new System.Windows.Forms.GroupBox();
       
    this.label3 = new System.Windows.Forms.Label();
       
    this.textBox4 = new System.Windows.Forms.TextBox();
       
    this.label4 = new System.Windows.Forms.Label();
       
    this.textBox5 = new System.Windows.Forms.TextBox();
       
    this.groupBox3 = new System.Windows.Forms.GroupBox();
       
    this.groupBox4 = new System.Windows.Forms.GroupBox();
       
    this.button2 = new System.Windows.Forms.Button();
       
    this.label5 = new System.Windows.Forms.Label();
       
    this.textBox6 = new System.Windows.Forms.TextBox();
       
    this.label6 = new System.Windows.Forms.Label();
       
    this.label7 = new System.Windows.Forms.Label();
       
    this.progressBar1 = new System.Windows.Forms.ProgressBar();
       
    this.textBox7 = new System.Windows.Forms.TextBox();
       
    this.label8 = new System.Windows.Forms.Label();
       
    this.label9 = new System.Windows.Forms.Label();
       
    this.textBox8 = new System.Windows.Forms.TextBox();
       
    this.label10 = new System.Windows.Forms.Label();
       
    this.textBox9 = new System.Windows.Forms.TextBox();
       
    this.label11 = new System.Windows.Forms.Label();
       
    this.label12 = new System.Windows.Forms.Label();
       
    this.textBox10 = new System.Windows.Forms.TextBox();
       
    this.groupBox1.SuspendLayout();
       
    this.groupBox2.SuspendLayout();
       
    this.groupBox3.SuspendLayout();
       
    this.groupBox4.SuspendLayout();
       
    this.SuspendLayout();
       
    // 
       
    // groupBox1
       
    // 
       this.groupBox1.Controls.Add(this.textBox2);
       
    this.groupBox1.Controls.Add(this.textBox3);
       
    this.groupBox1.Controls.Add(this.label2);
       
    this.groupBox1.Controls.Add(this.label1);
       
    this.groupBox1.Controls.Add(this.button1);
       
    this.groupBox1.Controls.Add(this.textBox1);
       
    this.groupBox1.Controls.Add(this.label6);
       
    this.groupBox1.Location = new System.Drawing.Point(00);
       
    this.groupBox1.Name = "groupBox1";
       
    this.groupBox1.Size = new System.Drawing.Size(41696);
       
    this.groupBox1.TabIndex = 0;
       
    this.groupBox1.TabStop = false;
       
    this.groupBox1.Text = "文件信息";
       
    // 
       
    // openFileDialog1
       
    // 
       this.openFileDialog1.Filter = "所有文件|*.*";
       
    // 
       
    // textBox1
       
    // 
       this.textBox1.Location = new System.Drawing.Point(816);
       
    this.textBox1.Name = "textBox1";
       
    this.textBox1.ReadOnly = true;
       
    this.textBox1.Size = new System.Drawing.Size(30421);
       
    this.textBox1.TabIndex = 0;
       
    this.textBox1.Text = "";
       
    // 
       
    // button1
       
    // 
       this.button1.Location = new System.Drawing.Point(32016);
       
    this.button1.Name = "button1";
       
    this.button1.Size = new System.Drawing.Size(8823);
       
    this.button1.TabIndex = 1;
       
    this.button1.Text = "浏览";
       
    this.button1.Click += new System.EventHandler(this.button1_Click);
       
    // 
       
    // label1
       
    // 
       this.label1.Location = new System.Drawing.Point(1648);
       
    this.label1.Name = "label1";
       
    this.label1.Size = new System.Drawing.Size(9616);
       
    this.label1.TabIndex = 2;
       
    this.label1.Text = "文件名:";
       
    // 
       
    // textBox2
       
    // 
       this.textBox2.Location = new System.Drawing.Point(8040);
       
    this.textBox2.Name = "textBox2";
       
    this.textBox2.ReadOnly = true;
       
    this.textBox2.Size = new System.Drawing.Size(23221);
       
    this.textBox2.TabIndex = 3;
       
    this.textBox2.Text = "";
       
    // 
       
    // label2
       
    // 
       this.label2.Location = new System.Drawing.Point(872);
       
    this.label2.Name = "label2";
       
    this.label2.Size = new System.Drawing.Size(10016);
       
    this.label2.TabIndex = 4;
       
    this.label2.Text = "文件大小:";
       
    // 
       
    // textBox3
       
    // 
       this.textBox3.Location = new System.Drawing.Point(8064);
       
    this.textBox3.Name = "textBox3";
       
    this.textBox3.ReadOnly = true;
       
    this.textBox3.Size = new System.Drawing.Size(13621);
       
    this.textBox3.TabIndex = 3;
       
    this.textBox3.Text = "";
       
    // 
       
    // groupBox2
       
    // 
       this.groupBox2.Controls.Add(this.textBox6);
       
    this.groupBox2.Controls.Add(this.textBox5);
       
    this.groupBox2.Controls.Add(this.label4);
       
    this.groupBox2.Controls.Add(this.textBox4);
       
    this.groupBox2.Controls.Add(this.label3);
       
    this.groupBox2.Controls.Add(this.label5);
       
    this.groupBox2.Controls.Add(this.label9);
       
    this.groupBox2.Location = new System.Drawing.Point(096);
       
    this.groupBox2.Name = "groupBox2";
       
    this.groupBox2.Size = new System.Drawing.Size(41672);
       
    this.groupBox2.TabIndex = 1;
       
    this.groupBox2.TabStop = false;
       
    this.groupBox2.Text = "系统设置";
       
    // 
       
    // label3
       
    // 
       this.label3.Location = new System.Drawing.Point(1624);
       
    this.label3.Name = "label3";
       
    this.label3.Size = new System.Drawing.Size(10016);
       
    this.label3.TabIndex = 0;
       
    this.label3.Text = "本机IP地址:";
       
    // 
       
    // textBox4
       
    // 
       this.textBox4.Location = new System.Drawing.Point(9616);
       
    this.textBox4.Name = "textBox4";
       
    this.textBox4.ReadOnly = true;
       
    this.textBox4.Size = new System.Drawing.Size(14421);
       
    this.textBox4.TabIndex = 1;
       
    this.textBox4.Text = "";
       
    // 
       
    // label4
       
    // 
       this.label4.Location = new System.Drawing.Point(25624);
       
    this.label4.Name = "label4";
       
    this.label4.Size = new System.Drawing.Size(10016);
       
    this.label4.TabIndex = 2;
       
    this.label4.Text = "传输端口:";
       
    // 
       
    // textBox5
       
    // 
       this.textBox5.Location = new System.Drawing.Point(32016);
       
    this.textBox5.Name = "textBox5";
       
    this.textBox5.Size = new System.Drawing.Size(8021);
       
    this.textBox5.TabIndex = 3;
       
    this.textBox5.Text = "8888";
       
    // 
       
    // groupBox3
       
    // 
       this.groupBox3.Controls.Add(this.textBox8);
       
    this.groupBox3.Controls.Add(this.textBox9);
       
    this.groupBox3.Controls.Add(this.textBox7);
       
    this.groupBox3.Controls.Add(this.progressBar1);
       
    this.groupBox3.Controls.Add(this.label7);
       
    this.groupBox3.Controls.Add(this.label8);
       
    this.groupBox3.Controls.Add(this.label10);
       
    this.groupBox3.Controls.Add(this.label11);
       
    this.groupBox3.Controls.Add(this.label12);
       
    this.groupBox3.Controls.Add(this.textBox10);
       
    this.groupBox3.Location = new System.Drawing.Point(0168);
       
    this.groupBox3.Name = "groupBox3";
       
    this.groupBox3.Size = new System.Drawing.Size(416168);
       
    this.groupBox3.TabIndex = 2;
       
    this.groupBox3.TabStop = false;
       
    this.groupBox3.Text = "状态信息";
       
    // 
       
    // groupBox4
       
    // 
       this.groupBox4.Controls.Add(this.button2);
       
    this.groupBox4.Location = new System.Drawing.Point(0336);
       
    this.groupBox4.Name = "groupBox4";
       
    this.groupBox4.Size = new System.Drawing.Size(41648);
       
    this.groupBox4.TabIndex = 3;
       
    this.groupBox4.TabStop = false;
       
    this.groupBox4.Text = "系统控制";
       
    // 
       
    // button2
       
    // 
       this.button2.Location = new System.Drawing.Point(1616);
       
    this.button2.Name = "button2";
       
    this.button2.TabIndex = 0;
       
    this.button2.Text = "开始发送";
       
    this.button2.Click += new System.EventHandler(this.button2_Click);
       
    // 
       
    // label5
       
    // 
       this.label5.Location = new System.Drawing.Point(2448);
       
    this.label5.Name = "label5";
       
    this.label5.Size = new System.Drawing.Size(8816);
       
    this.label5.TabIndex = 2;
       
    this.label5.Text = "包的大小:";
       
    // 
       
    // textBox6
       
    // 
       this.textBox6.Location = new System.Drawing.Point(9640);
       
    this.textBox6.Name = "textBox6";
       
    this.textBox6.Size = new System.Drawing.Size(7221);
       
    this.textBox6.TabIndex = 3;
       
    this.textBox6.Text = "50000";
       
    // 
       
    // label6
       
    // 
       this.label6.Location = new System.Drawing.Point(22472);
       
    this.label6.Name = "label6";
       
    this.label6.Size = new System.Drawing.Size(9616);
       
    this.label6.TabIndex = 2;
       
    this.label6.Text = "(单位:字节)";
       
    // 
       
    // label7
       
    // 
       this.label7.Location = new System.Drawing.Point(3224);
       
    this.label7.Name = "label7";
       
    this.label7.Size = new System.Drawing.Size(9616);
       
    this.label7.TabIndex = 2;
       
    this.label7.Text = "接收端IP地址:";
       
    // 
       
    // progressBar1
       
    // 
       this.progressBar1.Location = new System.Drawing.Point(8136);
       
    this.progressBar1.Name = "progressBar1";
       
    this.progressBar1.Size = new System.Drawing.Size(40023);
       
    this.progressBar1.Step = 1;
       
    this.progressBar1.TabIndex = 3;
       
    // 
       
    // textBox7
       
    // 
       this.textBox7.Location = new System.Drawing.Point(12016);
       
    this.textBox7.Name = "textBox7";
       
    this.textBox7.ReadOnly = true;
       
    this.textBox7.Size = new System.Drawing.Size(16021);
       
    this.textBox7.TabIndex = 1;
       
    this.textBox7.Text = "";
       
    // 
       
    // label8
       
    // 
       this.label8.Location = new System.Drawing.Point(4048);
       
    this.label8.Name = "label8";
       
    this.label8.Size = new System.Drawing.Size(8016);
       
    this.label8.TabIndex = 2;
       
    this.label8.Text = "包的总数量:";
       
    // 
       
    // label9
       
    // 
       this.label9.Location = new System.Drawing.Point(17648);
       
    this.label9.Name = "label9";
       
    this.label9.Size = new System.Drawing.Size(22416);
       
    this.label9.TabIndex = 2;
       
    this.label9.Text = "(范围:10000 - 60000 单位:字节)";
       
    // 
       
    // textBox8
       
    // 
       this.textBox8.Location = new System.Drawing.Point(12040);
       
    this.textBox8.Name = "textBox8";
       
    this.textBox8.ReadOnly = true;
       
    this.textBox8.Size = new System.Drawing.Size(16021);
       
    this.textBox8.TabIndex = 1;
       
    this.textBox8.Text = "";
       
    // 
       
    // label10
       
    // 
       this.label10.Location = new System.Drawing.Point(872);
       
    this.label10.Name = "label10";
       
    this.label10.Size = new System.Drawing.Size(12016);
       
    this.label10.TabIndex = 2;
       
    this.label10.Text = "最后一个包的大小:";
       
    // 
       
    // textBox9
       
    // 
       this.textBox9.Location = new System.Drawing.Point(12064);
       
    this.textBox9.Name = "textBox9";
       
    this.textBox9.ReadOnly = true;
       
    this.textBox9.Size = new System.Drawing.Size(8021);
       
    this.textBox9.TabIndex = 1;
       
    this.textBox9.Text = "";
       
    // 
       
    // label11
       
    // 
       this.label11.Location = new System.Drawing.Point(20072);
       
    this.label11.Name = "label11";
       
    this.label11.Size = new System.Drawing.Size(9616);
       
    this.label11.TabIndex = 2;
       
    this.label11.Text = "(单位:字节)";
       
    // 
       
    // label12
       
    // 
       this.label12.Location = new System.Drawing.Point(1696);
       
    this.label12.Name = "label12";
       
    this.label12.Size = new System.Drawing.Size(10416);
       
    this.label12.TabIndex = 2;
       
    this.label12.Text = "已发送包的数量:";
       
    // 
       
    // textBox10
       
    // 
       this.textBox10.Location = new System.Drawing.Point(12088);
       
    this.textBox10.Name = "textBox10";
       
    this.textBox10.ReadOnly = true;
       
    this.textBox10.Size = new System.Drawing.Size(8021);
       
    this.textBox10.TabIndex = 1;
       
    this.textBox10.Text = "";
       
    // 
       
    // EzoneSend
       
    // 
       this.AutoScaleBaseSize = new System.Drawing.Size(614);
       
    this.ClientSize = new System.Drawing.Size(416389);
       
    this.Controls.Add(this.groupBox4);
       
    this.Controls.Add(this.groupBox3);
       
    this.Controls.Add(this.groupBox2);
       
    this.Controls.Add(this.groupBox1);
       
    this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle;
       
    this.MaximizeBox = false;
       
    this.Name = "EzoneSend";
       
    this.Text = "亿众国际点对点文件传输软体发送端";
       
    this.Load += new System.EventHandler(this.EzoneSend_Load);
       
    this.groupBox1.ResumeLayout(false);
       
    this.groupBox2.ResumeLayout(false);
       
    this.groupBox3.ResumeLayout(false);
       
    this.groupBox4.ResumeLayout(false);
       
    this.ResumeLayout(false);

      }
      
    #endregion

      
    /// <summary>
      
    /// 应用程序的主入口点。
      
    /// </summary>
      [STAThread]
      
    static void Main() 
      {
       Application.Run(
    new EzoneSend());
      }

      
    private void button1_Click(object sender, System.EventArgs e)
      {
       
    //选择要进行传输的文件
       if(this.openFileDialog1.ShowDialog()==DialogResult.OK)
       {
        FileInfo EzoneFile
    =new FileInfo(this.openFileDialog1.FileName);
        
    this.textBox1.Text=EzoneFile.FullName;
        
    this.textBox2.Text=EzoneFile.Name;
        
    this.textBox3.Text=EzoneFile.Length.ToString();
        
       }
      }


      
    private void StartSend()
      {   
       
    //创建一个文件对象
       FileInfo EzoneFile=new FileInfo(this.textBox1.Text);
       
    //打开文件流
       FileStream EzoneStream=EzoneFile.OpenRead();
       
    //包的大小
       int PacketSize=int.Parse(this.textBox6.Text);
       
    //包的数量
       int PacketCount=(int)(EzoneStream.Length/((long)PacketSize));
       
    this.textBox8.Text=PacketCount.ToString();
       
    this.progressBar1.Maximum=PacketCount;
       
    //最后一个包的大小
       int LastDataPacket=(int)(EzoneStream.Length-((long)(PacketSize*PacketCount)));
       
    this.textBox9.Text=LastDataPacket.ToString();
       
    //创建一个网络端点
       IPEndPoint ipep=new IPEndPoint(IPAddress.Any,int.Parse(this.textBox5.Text));
       
    //创建一个套接字
       Socket server=new Socket(AddressFamily.InterNetwork,SocketType.Stream,ProtocolType.Tcp);
       
    //绑定套接字到端口
       server.Bind(ipep);
       
    //开始侦听(并堵塞该线程)
       server.Listen(10);
       
    //确认连接
       Socket client=server.Accept();
       
    //获得客户端节点对象
       IPEndPoint clientep=(IPEndPoint)client.RemoteEndPoint;
       
    //获得客户端的IP地址
       this.textBox7.Text=clientep.Address.ToString();
       
    //发送[文件名]到客户端
       CommonModule.EzoneModule.SendVarData(client,System.Text.Encoding.Unicode.GetBytes(EzoneFile.Name));
       
    //发送[包的大小]到客户端
       CommonModule.EzoneModule.SendVarData(client,System.Text.Encoding.Unicode.GetBytes(PacketSize.ToString()));
       
    //发送[包的总数量]到客户端
       CommonModule.EzoneModule.SendVarData(client,System.Text.Encoding.Unicode.GetBytes(PacketCount.ToString()));
       
    //发送[最后一个包的大小]到客户端
       CommonModule.EzoneModule.SendVarData(client,System.Text.Encoding.Unicode.GetBytes(LastDataPacket.ToString()));

       
    //数据包
       byte[] data=new byte[PacketSize];
       
    //开始循环发送数据包
       for(int i=0;i<PacketCount;i++)
       {
        
    //从文件流读取数据并填充数据包
        EzoneStream.Read(data,0,data.Length);
        
    //发送数据包
        CommonModule.EzoneModule.SendVarData(client,data);
        
    //显示发送数据包的个数
        this.textBox10.Text=((int)(i+1)).ToString();
        
    //进度条值的显示
        this.progressBar1.PerformStep();
       }

       
    //如果还有多余的数据包,则应该发送完毕!
       if(LastDataPacket!=0)
       {
        data
    =new byte[LastDataPacket];
        EzoneStream.Read(data,
    0,data.Length);
        CommonModule.EzoneModule.SendVarData(client,data);
        
    this.progressBar1.Value=this.progressBar1.Maximum;
       }

       
    //关闭套接字
       client.Close();
       server.Close();
       
    //关闭文件流
       EzoneStream.Close();
       
    this.button2.Enabled=true;
       MessageBox.Show(
    "文件传输完毕!");
      }


      
    private void button2_Click(object sender, System.EventArgs e)
      {
       
    //开启文件传输子线程
       Thread TempThread=new Thread(new ThreadStart(this.StartSend));
       TempThread.Start();
       
    this.button2.Enabled=false;
      }

      
    private void EzoneSend_Load(object sender, System.EventArgs e)
      {
       
    //获得本机的IP地址
       this.textBox4.Text=Dns.GetHostByName(Dns.GetHostName()).AddressList[0].ToString();
      }
     }
    }
    //////////////////////////End-亿众国际发送端////////////////////////////////////

    //////////////////////////Begin-亿众国际接收端//////////////////////////////////
    using System;
    using System.Drawing;
    using System.Collections;
    using System.ComponentModel;
    using System.Windows.Forms;
    using System.Data;
    using System.Net;
    using System.Net.Sockets;
    using System.IO;
    using System.Threading;

    namespace 亿众国际接收端
    {
     
    /// <summary>
     
    /// Form1 的摘要说明。
     
    /// </summary>
     public class EzoneReceive : System.Windows.Forms.Form
     {
      
    private System.Windows.Forms.GroupBox groupBox1;
      
    private System.Windows.Forms.Button button1;
      
    private System.Windows.Forms.GroupBox groupBox3;
      
    private System.Windows.Forms.GroupBox groupBox2;
      
    private System.Windows.Forms.TextBox textBox5;
      
    private System.Windows.Forms.Label label4;
      
    private System.Windows.Forms.TextBox textBox4;
      
    private System.Windows.Forms.Label label3;
      
    private System.Windows.Forms.TextBox textBox1;
      
    private System.Windows.Forms.Label label1;
      
    private System.Windows.Forms.Label label2;
      
    private System.Windows.Forms.TextBox textBox2;
      
    private System.Windows.Forms.TextBox textBox8;
      
    private System.Windows.Forms.TextBox textBox9;
      
    private System.Windows.Forms.Label label8;
      
    private System.Windows.Forms.Label label10;
      
    private System.Windows.Forms.Label label11;
      
    private System.Windows.Forms.Label label12;
      
    private System.Windows.Forms.TextBox textBox10;
      
    private System.Windows.Forms.ProgressBar progressBar1;
      
    private System.Windows.Forms.TextBox textBox3;
      
    private System.Windows.Forms.Label label5;
      
    private System.Windows.Forms.Label label6;
      
    /// <summary>
      
    /// 必需的设计器变量。
      
    /// </summary>
      private System.ComponentModel.Container components = null;

      
    public EzoneReceive()
      {
       
    //
       
    // Windows 窗体设计器支持所必需的
       
    //
       InitializeComponent();

       
    //
       
    // TODO: 在 InitializeComponent 调用后添加任何构造函数代码
       
    //
      }

      
    /// <summary>
      
    /// 清理所有正在使用的资源。
      
    /// </summary>
      protected override void Dispose( bool disposing )
      {
       
    if( disposing )
       {
        
    if (components != null
        {
         components.Dispose();
        }
       }
       
    base.Dispose( disposing );
      }

      
    #region Windows 窗体设计器生成的代码
      
    /// <summary>
      
    /// 设计器支持所需的方法 - 不要使用代码编辑器修改
      
    /// 此方法的内容。
      
    /// </summary>
      private void InitializeComponent()
      {
       
    this.groupBox1 = new System.Windows.Forms.GroupBox();
       
    this.button1 = new System.Windows.Forms.Button();
       
    this.groupBox3 = new System.Windows.Forms.GroupBox();
       
    this.groupBox2 = new System.Windows.Forms.GroupBox();
       
    this.textBox5 = new System.Windows.Forms.TextBox();
       
    this.label4 = new System.Windows.Forms.Label();
       
    this.textBox4 = new System.Windows.Forms.TextBox();
       
    this.label3 = new System.Windows.Forms.Label();
       
    this.textBox1 = new System.Windows.Forms.TextBox();
       
    this.label1 = new System.Windows.Forms.Label();
       
    this.label2 = new System.Windows.Forms.Label();
       
    this.textBox2 = new System.Windows.Forms.TextBox();
       
    this.textBox8 = new System.Windows.Forms.TextBox();
       
    this.textBox9 = new System.Windows.Forms.TextBox();
       
    this.label8 = new System.Windows.Forms.Label();
       
    this.label10 = new System.Windows.Forms.Label();
       
    this.label11 = new System.Windows.Forms.Label();
       
    this.label12 = new System.Windows.Forms.Label();
       
    this.textBox10 = new System.Windows.Forms.TextBox();
       
    this.progressBar1 = new System.Windows.Forms.ProgressBar();
       
    this.textBox3 = new System.Windows.Forms.TextBox();
       
    this.label5 = new System.Windows.Forms.Label();
       
    this.label6 = new System.Windows.Forms.Label();
       
    this.groupBox1.SuspendLayout();
       
    this.groupBox3.SuspendLayout();
       
    this.groupBox2.SuspendLayout();
       
    this.SuspendLayout();
       
    // 
       
    // groupBox1
       
    // 
       this.groupBox1.Controls.Add(this.button1);
       
    this.groupBox1.Location = new System.Drawing.Point(0256);
       
    this.groupBox1.Name = "groupBox1";
       
    this.groupBox1.Size = new System.Drawing.Size(40848);
       
    this.groupBox1.TabIndex = 0;
       
    this.groupBox1.TabStop = false;
       
    this.groupBox1.Text = "系统控制";
       
    // 
       
    // button1
       
    // 
       this.button1.Location = new System.Drawing.Point(816);
       
    this.button1.Name = "button1";
       
    this.button1.TabIndex = 0;
       
    this.button1.Text = "开始接收";
       
    this.button1.Click += new System.EventHandler(this.button1_Click);
       
    // 
       
    // groupBox3
       
    // 
       this.groupBox3.Controls.Add(this.progressBar1);
       
    this.groupBox3.Controls.Add(this.textBox8);
       
    this.groupBox3.Controls.Add(this.textBox9);
       
    this.groupBox3.Controls.Add(this.label8);
       
    this.groupBox3.Controls.Add(this.label10);
       
    this.groupBox3.Controls.Add(this.label11);
       
    this.groupBox3.Controls.Add(this.label12);
       
    this.groupBox3.Controls.Add(this.textBox10);
       
    this.groupBox3.Controls.Add(this.textBox2);
       
    this.groupBox3.Controls.Add(this.label2);
       
    this.groupBox3.Controls.Add(this.textBox3);
       
    this.groupBox3.Controls.Add(this.label5);
       
    this.groupBox3.Controls.Add(this.label6);
       
    this.groupBox3.Location = new System.Drawing.Point(072);
       
    this.groupBox3.Name = "groupBox3";
       
    this.groupBox3.Size = new System.Drawing.Size(408184);
       
    this.groupBox3.TabIndex = 4;
       
    this.groupBox3.TabStop = false;
       
    this.groupBox3.Text = "状态信息";
       
    // 
       
    // groupBox2
       
    // 
       this.groupBox2.Controls.Add(this.textBox5);
       
    this.groupBox2.Controls.Add(this.label4);
       
    this.groupBox2.Controls.Add(this.textBox4);
       
    this.groupBox2.Controls.Add(this.label3);
       
    this.groupBox2.Controls.Add(this.textBox1);
       
    this.groupBox2.Controls.Add(this.label1);
       
    this.groupBox2.Location = new System.Drawing.Point(00);
       
    this.groupBox2.Name = "groupBox2";
       
    this.groupBox2.Size = new System.Drawing.Size(40872);
       
    this.groupBox2.TabIndex = 3;
       
    this.groupBox2.TabStop = false;
       
    this.groupBox2.Text = "系统设置";
       
    // 
       
    // textBox5
       
    // 
       this.textBox5.Location = new System.Drawing.Point(32040);
       
    this.textBox5.Name = "textBox5";
       
    this.textBox5.Size = new System.Drawing.Size(8021);
       
    this.textBox5.TabIndex = 3;
       
    this.textBox5.Text = "8888";
       
    // 
       
    // label4
       
    // 
       this.label4.Location = new System.Drawing.Point(28048);
       
    this.label4.Name = "label4";
       
    this.label4.Size = new System.Drawing.Size(10016);
       
    this.label4.TabIndex = 2;
       
    this.label4.Text = "端口:";
       
    // 
       
    // textBox4
       
    // 
       this.textBox4.Location = new System.Drawing.Point(10416);
       
    this.textBox4.Name = "textBox4";
       
    this.textBox4.ReadOnly = true;
       
    this.textBox4.Size = new System.Drawing.Size(16021);
       
    this.textBox4.TabIndex = 1;
       
    this.textBox4.Text = "";
       
    // 
       
    // label3
       
    // 
       this.label3.Location = new System.Drawing.Point(1624);
       
    this.label3.Name = "label3";
       
    this.label3.Size = new System.Drawing.Size(10016);
       
    this.label3.TabIndex = 0;
       
    this.label3.Text = "本机IP地址:";
       
    // 
       
    // textBox1
       
    // 
       this.textBox1.Location = new System.Drawing.Point(10440);
       
    this.textBox1.Name = "textBox1";
       
    this.textBox1.Size = new System.Drawing.Size(16021);
       
    this.textBox1.TabIndex = 1;
       
    this.textBox1.Text = "";
       
    // 
       
    // label1
       
    // 
       this.label1.Location = new System.Drawing.Point(1648);
       
    this.label1.Name = "label1";
       
    this.label1.Size = new System.Drawing.Size(10016);
       
    this.label1.TabIndex = 0;
       
    this.label1.Text = "服务端IP地址:";
       
    // 
       
    // label2
       
    // 
       this.label2.Location = new System.Drawing.Point(6424);
       
    this.label2.Name = "label2";
       
    this.label2.Size = new System.Drawing.Size(10016);
       
    this.label2.TabIndex = 0;
       
    this.label2.Text = "文件名:";
       
    // 
       
    // textBox2
       
    // 
       this.textBox2.Location = new System.Drawing.Point(12016);
       
    this.textBox2.Name = "textBox2";
       
    this.textBox2.ReadOnly = true;
       
    this.textBox2.Size = new System.Drawing.Size(16021);
       
    this.textBox2.TabIndex = 1;
       
    this.textBox2.Text = "";
       
    // 
       
    // textBox8
       
    // 
       this.textBox8.Location = new System.Drawing.Point(12064);
       
    this.textBox8.Name = "textBox8";
       
    this.textBox8.ReadOnly = true;
       
    this.textBox8.Size = new System.Drawing.Size(16021);
       
    this.textBox8.TabIndex = 5;
       
    this.textBox8.Text = "";
       
    // 
       
    // textBox9
       
    // 
       this.textBox9.Location = new System.Drawing.Point(12088);
       
    this.textBox9.Name = "textBox9";
       
    this.textBox9.ReadOnly = true;
       
    this.textBox9.Size = new System.Drawing.Size(8021);
       
    this.textBox9.TabIndex = 4;
       
    this.textBox9.Text = "";
       
    // 
       
    // label8
       
    // 
       this.label8.Location = new System.Drawing.Point(4072);
       
    this.label8.Name = "label8";
       
    this.label8.Size = new System.Drawing.Size(8016);
       
    this.label8.TabIndex = 8;
       
    this.label8.Text = "包的总数量:";
       
    // 
       
    // label10
       
    // 
       this.label10.Location = new System.Drawing.Point(896);
       
    this.label10.Name = "label10";
       
    this.label10.Size = new System.Drawing.Size(12016);
       
    this.label10.TabIndex = 9;
       
    this.label10.Text = "最后一个包的大小:";
       
    // 
       
    // label11
       
    // 
       this.label11.Location = new System.Drawing.Point(20096);
       
    this.label11.Name = "label11";
       
    this.label11.Size = new System.Drawing.Size(9616);
       
    this.label11.TabIndex = 7;
       
    this.label11.Text = "(单位:字节)";
       
    // 
       
    // label12
       
    // 
       this.label12.Location = new System.Drawing.Point(16120);
       
    this.label12.Name = "label12";
       
    this.label12.Size = new System.Drawing.Size(10416);
       
    this.label12.TabIndex = 6;
       
    this.label12.Text = "已接收包的数量:";
       
    // 
       
    // textBox10
       
    // 
       this.textBox10.Location = new System.Drawing.Point(120112);
       
    this.textBox10.Name = "textBox10";
       
    this.textBox10.ReadOnly = true;
       
    this.textBox10.Size = new System.Drawing.Size(8021);
       
    this.textBox10.TabIndex = 3;
       
    this.textBox10.Text = "";
       
    // 
       
    // progressBar1
       
    // 
       this.progressBar1.Location = new System.Drawing.Point(8152);
       
    this.progressBar1.Name = "progressBar1";
       
    this.progressBar1.Size = new System.Drawing.Size(39223);
       
    this.progressBar1.Step = 1;
       
    this.progressBar1.TabIndex = 10;
       
    // 
       
    // textBox3
       
    // 
       this.textBox3.Location = new System.Drawing.Point(12040);
       
    this.textBox3.Name = "textBox3";
       
    this.textBox3.ReadOnly = true;
       
    this.textBox3.Size = new System.Drawing.Size(16021);
       
    this.textBox3.TabIndex = 5;
       
    this.textBox3.Text = "";
       
    // 
       
    // label5
       
    // 
       this.label5.Location = new System.Drawing.Point(4848);
       
    this.label5.Name = "label5";
       
    this.label5.Size = new System.Drawing.Size(7216);
       
    this.label5.TabIndex = 8;
       
    this.label5.Text = "包的大小:";
       
    // 
       
    // label6
       
    // 
       this.label6.Location = new System.Drawing.Point(28848);
       
    this.label6.Name = "label6";
       
    this.label6.Size = new System.Drawing.Size(9616);
       
    this.label6.TabIndex = 7;
       
    this.label6.Text = "(单位:字节)";
       
    // 
       
    // EzoneReceive
       
    // 
       this.AutoScaleBaseSize = new System.Drawing.Size(614);
       
    this.ClientSize = new System.Drawing.Size(410311);
       
    this.Controls.Add(this.groupBox3);
       
    this.Controls.Add(this.groupBox2);
       
    this.Controls.Add(this.groupBox1);
       
    this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle;
       
    this.MaximizeBox = false;
       
    this.Name = "EzoneReceive";
       
    this.Text = "亿众国际点对点文件传输软体接收端";
       
    this.Load += new System.EventHandler(this.EzoneReceive_Load);
       
    this.groupBox1.ResumeLayout(false);
       
    this.groupBox3.ResumeLayout(false);
       
    this.groupBox2.ResumeLayout(false);
       
    this.ResumeLayout(false);

      }
      
    #endregion

      
    /// <summary>
      
    /// 应用程序的主入口点。
      
    /// </summary>
      [STAThread]
      
    static void Main() 
      {
       Application.Run(
    new EzoneReceive());
      }

      
    private void button1_Click(object sender, System.EventArgs e)
      {
       
    //开启接收线程
       Thread TempThread=new Thread(new ThreadStart(this.StartReceive));
       TempThread.Start();
       
    this.button1.Enabled=false;
      }

      
    private void EzoneReceive_Load(object sender, System.EventArgs e)
      {
       
    //获得本机的IP地址
       this.textBox4.Text=Dns.GetHostByName(Dns.GetHostName()).AddressList[0].ToString();
      }

      
    private void StartReceive()
      {
       
    //指向远程服务端节点
       IPEndPoint ipep=new IPEndPoint(IPAddress.Parse(this.textBox1.Text),int.Parse(this.textBox5.Text));
       
    //创建套接字
       Socket client=new Socket(AddressFamily.InterNetwork,SocketType.Stream,ProtocolType.Tcp);
       
    //连接到发送端
       client.Connect(ipep);
       
    //获得[文件名]
       string SendFileName=System.Text.Encoding.Unicode.GetString(CommonModule.EzoneModule.ReceiveVarData(client));
       
    this.textBox2.Text=SendFileName;
       
    //获得[包的大小]
       this.textBox3.Text=System.Text.Encoding.Unicode.GetString(CommonModule.EzoneModule.ReceiveVarData(client));
       
    //获得[包的总数量]
       this.textBox8.Text=System.Text.Encoding.Unicode.GetString(CommonModule.EzoneModule.ReceiveVarData(client));
       
    this.progressBar1.Maximum=int.Parse(this.textBox8.Text);
       
    //获得[最后一个包的大小]
       this.textBox9.Text=System.Text.Encoding.Unicode.GetString(CommonModule.EzoneModule.ReceiveVarData(client));
       
    //创建一个新文件
       FileStream MyFileStream=new FileStream(SendFileName,FileMode.Create,FileAccess.Write);
       
    //已发送包的个数
       int SendedCount=0;
       
    while(true)
       {
        
    byte[] data=CommonModule.EzoneModule.ReceiveVarData(client);
        
    if(data.Length==0)
        {
         
    break;
        }
        
    else
        {
         SendedCount
    ++;
         
    //将接收到的数据包写入到文件流对象
         MyFileStream.Write(data,0,data.Length);
         
    //显示已发送包的个数
         this.textBox10.Text=SendedCount.ToString();
         
    //进度条值的显示
         this.progressBar1.PerformStep();
        }
       }
       
    this.progressBar1.Value=this.progressBar1.Maximum;
       
    //关闭文件流
       MyFileStream.Close();
       
    //关闭套接字
       client.Close();
       
    this.button1.Enabled=true;
       MessageBox.Show(
    "文件接收完毕!");
      }
     }
    }
    //////////////////////////End-亿众国际接收端////////////////////////////////////

    ////////////////////////////Begin-公共模块//////////////////////////////////////
    using System;
    using System.Net;
    using System.Net.Sockets;
    using System.Windows.Forms;

    namespace CommonModule
    {
     
    /// <summary>
     
    /// Class1 的摘要说明。
     
    /// </summary>
     public class EzoneModule
     {
      
    public EzoneModule()
      {
       
    //
       
    // TODO: 在此处添加构造函数逻辑
       
    //
      }

      
    public static int SendData(Socket s,byte[] data)
      {
       
    int total=0;
       
    int size=data.Length;
       
    int dataleft=size;
       
    int sent;

       
    while(total<size)
       {
        sent
    =s.Send(data,total,dataleft,SocketFlags.None);
        total
    +=sent;
        dataleft
    -=sent;
       }

       
    return total;
      }

      
    public static byte[] ReceiveData(Socket s,int size)
      {
       
    int total=0;
       
    int dataleft=size;
       
    byte[] data=new byte[size];
       
    int recv;
       
    while(total<size)
       {
        recv
    =s.Receive(data,total,dataleft,SocketFlags.None);
        
    if(recv==0)
        {
         data
    =null;
         
    break;
        }

        total
    +=recv;
        dataleft
    -=recv;
       }
       
    return data;
      }

      
    public static int SendVarData(Socket s,byte[] data)
      {
       
    int total=0;
       
    int size=data.Length;
       
    int dataleft=size;
       
    int sent;
       
    byte[] datasize=new byte[4];
       datasize
    =BitConverter.GetBytes(size);
       sent
    =s.Send(datasize);

       
    while(total<size)
       {
        sent
    =s.Send(data,total,dataleft,SocketFlags.None);
        total
    +=sent;
        dataleft
    -=sent;
       }

       
    return total;
      }

      
    public static byte[] ReceiveVarData(Socket s)
      {
       
    int total=0;
       
    int recv;
       
    byte[] datasize=new byte[4];
       recv
    =s.Receive(datasize,0,4,SocketFlags.None);
       
    int size=BitConverter.ToInt32(datasize,0);
       
    int dataleft=size;
       
    byte[] data=new byte[size];
       
    while(total<size)
       {
        recv
    =s.Receive(data,total,dataleft,SocketFlags.None);
        
    if(recv==0)
        {
         data
    =null;
         
    break;
        }
        total
    +=recv;
        dataleft
    -=recv;
       }
       
    return data;
      }
     }
    }

    /////////////////////////////End-公共模块///////////////////////////////////////

    申明

    非源创博文中的内容均收集自网上,若有侵权之处,请及时联络,我会在第一时间内删除.再次说声抱歉!!!

    博文欢迎转载,但请给出原文连接。

  • 相关阅读:
    apply call this arguments caller callee
    JavaScript 小刮号
    asp.net底层http管道
    JavaScript 使用方括号([])引用对象的属性和方法 createDelegate
    MSIL条件跳转(简单注释)
    微软MVP手把手教你如何修改.NET Framework
    简单操作IL文件
    Remoting入门实例
    AutoResetEvent和ManualResetEvent用法示例
    AutoResetEvent和ManualResetEvent用法
  • 原文地址:https://www.cnblogs.com/Athrun/p/824549.html
Copyright © 2011-2022 走看看