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-公共模块///////////////////////////////////////

    申明

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

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

  • 相关阅读:
    27. Remove Element
    列表变成字典
    1. Two Sum
    CVPR2019:What and How Well You Performed? A Multitask Learning Approach to Action Quality Assessment
    959. Regions Cut By Slashes
    118. Pascal's Triangle
    loj3117 IOI2017 接线 wiring 题解
    题解 NOI2019 序列
    题解 省选联考2020 组合数问题
    题解 Educational Codeforces Round 90 (Rated for Div. 2) (CF1373)
  • 原文地址:https://www.cnblogs.com/Athrun/p/824549.html
Copyright © 2011-2022 走看看