惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

博客园 - 三生石上(FineUI控件)
Martin Fowler
Martin Fowler
月光博客
月光博客
AI
AI
B
Blog
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
C
CXSECURITY Database RSS Feed - CXSecurity.com
WordPress大学
WordPress大学
GbyAI
GbyAI
L
Lohrmann on Cybersecurity
O
OpenAI News
Schneier on Security
Schneier on Security
P
Palo Alto Networks Blog
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
T
Troy Hunt's Blog
V2EX - 技术
V2EX - 技术
W
WeLiveSecurity
L
LINUX DO - 最新话题
人人都是产品经理
人人都是产品经理
S
Security Affairs
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
A
Arctic Wolf
Recorded Future
Recorded Future
Microsoft Security Blog
Microsoft Security Blog
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
G
GRAHAM CLULEY
N
Netflix TechBlog - Medium
TaoSecurity Blog
TaoSecurity Blog
C
Check Point Blog
Scott Helme
Scott Helme
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
Apple Machine Learning Research
Apple Machine Learning Research
PCI Perspectives
PCI Perspectives
www.infosecurity-magazine.com
www.infosecurity-magazine.com
Vercel News
Vercel News
The Hacker News
The Hacker News
Y
Y Combinator Blog
Latest news
Latest news
SecWiki News
SecWiki News
Hugging Face - Blog
Hugging Face - Blog
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
Google Online Security Blog
Google Online Security Blog
Webroot Blog
Webroot Blog
Google DeepMind News
Google DeepMind News
Recent Commits to openclaw:main
Recent Commits to openclaw:main
C
Cisco Blogs
博客园_首页
H
Hackread – Cybersecurity News, Data Breaches, AI and More
宝玉的分享
宝玉的分享
L
LINUX DO - 热门话题

博客园 - 秋发

利用VC++实现局域网实时视频传输 文件传输协议(File Transfer Protocol, FTP) 点对点传输 图片的版权保护(添加水印) 使用C#在进度条中显示复制文件的进度 C#实现基于TCP协议的网络通讯 C#实现木马程序 c#中备份数据库 视频捕获软件开发完全教学 Visual C#.Net 网络程序开发-Socket篇 用Mencoder进行任意视频格式转换成flv 用mencoder转换flv时如何控制视频品质 使用mencoder剪辑视频 ffmpeg和Mencoder使用实例小全 [转]利用ffmpeg+mencoder视频转换的总结(C#) [转]ffmpeg+mencoder环境搭建和视频处理总结 [转] 用程序来自动建立FTP帐号(serv-u的odbc设置) TreeView 四技 [转]ASP.NET大文件上传的问题<--拘绝潜水的鱼
亿众国际点对点文件传输程序
秋发 · 2007-06-12 · via 博客园 - 秋发

 

////////////////////////////////////////////////////////////////////////////////
//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(0, 0);
   this.groupBox1.Name = "groupBox1";
   this.groupBox1.Size = new System.Drawing.Size(416, 96);
   this.groupBox1.TabIndex = 0;
   this.groupBox1.TabStop = false;
   this.groupBox1.Text = "文件信息";
   //
   // openFileDialog1
   //
   this.openFileDialog1.Filter = "所有文件|*.*";
   //
   // textBox1
   //
   this.textBox1.Location = new System.Drawing.Point(8, 16);
   this.textBox1.Name = "textBox1";
   this.textBox1.ReadOnly = true;
   this.textBox1.Size = new System.Drawing.Size(304, 21);
   this.textBox1.TabIndex = 0;
   this.textBox1.Text = "";
   //
   // button1
   //
   this.button1.Location = new System.Drawing.Point(320, 16);
   this.button1.Name = "button1";
   this.button1.Size = new System.Drawing.Size(88, 23);
   this.button1.TabIndex = 1;
   this.button1.Text = "浏览";
   this.button1.Click += new System.EventHandler(this.button1_Click);
   //
   // label1
   //
   this.label1.Location = new System.Drawing.Point(16, 48);
   this.label1.Name = "label1";
   this.label1.Size = new System.Drawing.Size(96, 16);
   this.label1.TabIndex = 2;
   this.label1.Text = "文件名:";
   //
   // textBox2
   //
   this.textBox2.Location = new System.Drawing.Point(80, 40);
   this.textBox2.Name = "textBox2";
   this.textBox2.ReadOnly = true;
   this.textBox2.Size = new System.Drawing.Size(232, 21);
   this.textBox2.TabIndex = 3;
   this.textBox2.Text = "";
   //
   // label2
   //
   this.label2.Location = new System.Drawing.Point(8, 72);
   this.label2.Name = "label2";
   this.label2.Size = new System.Drawing.Size(100, 16);
   this.label2.TabIndex = 4;
   this.label2.Text = "文件大小:";
   //
   // textBox3
   //
   this.textBox3.Location = new System.Drawing.Point(80, 64);
   this.textBox3.Name = "textBox3";
   this.textBox3.ReadOnly = true;
   this.textBox3.Size = new System.Drawing.Size(136, 21);
   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(0, 96);
   this.groupBox2.Name = "groupBox2";
   this.groupBox2.Size = new System.Drawing.Size(416, 72);
   this.groupBox2.TabIndex = 1;
   this.groupBox2.TabStop = false;
   this.groupBox2.Text = "系统设置";
   //
   // label3
   //
   this.label3.Location = new System.Drawing.Point(16, 24);
   this.label3.Name = "label3";
   this.label3.Size = new System.Drawing.Size(100, 16);
   this.label3.TabIndex = 0;
   this.label3.Text = "本机IP地址:";
   //
   // textBox4
   //
   this.textBox4.Location = new System.Drawing.Point(96, 16);
   this.textBox4.Name = "textBox4";
   this.textBox4.ReadOnly = true;
   this.textBox4.Size = new System.Drawing.Size(144, 21);
   this.textBox4.TabIndex = 1;
   this.textBox4.Text = "";
   //
   // label4
   //
   this.label4.Location = new System.Drawing.Point(256, 24);
   this.label4.Name = "label4";
   this.label4.Size = new System.Drawing.Size(100, 16);
   this.label4.TabIndex = 2;
   this.label4.Text = "传输端口:";
   //
   // textBox5
   //
   this.textBox5.Location = new System.Drawing.Point(320, 16);
   this.textBox5.Name = "textBox5";
   this.textBox5.Size = new System.Drawing.Size(80, 21);
   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(0, 168);
   this.groupBox3.Name = "groupBox3";
   this.groupBox3.Size = new System.Drawing.Size(416, 168);
   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(0, 336);
   this.groupBox4.Name = "groupBox4";
   this.groupBox4.Size = new System.Drawing.Size(416, 48);
   this.groupBox4.TabIndex = 3;
   this.groupBox4.TabStop = false;
   this.groupBox4.Text = "系统控制";
   //
   // button2
   //
   this.button2.Location = new System.Drawing.Point(16, 16);
   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(24, 48);
   this.label5.Name = "label5";
   this.label5.Size = new System.Drawing.Size(88, 16);
   this.label5.TabIndex = 2;
   this.label5.Text = "包的大小:";
   //
   // textBox6
   //
   this.textBox6.Location = new System.Drawing.Point(96, 40);
   this.textBox6.Name = "textBox6";
   this.textBox6.Size = new System.Drawing.Size(72, 21);
   this.textBox6.TabIndex = 3;
   this.textBox6.Text = "50000";
   //
   // label6
   //
   this.label6.Location = new System.Drawing.Point(224, 72);
   this.label6.Name = "label6";
   this.label6.Size = new System.Drawing.Size(96, 16);
   this.label6.TabIndex = 2;
   this.label6.Text = "(单位:字节)";
   //
   // label7
   //
   this.label7.Location = new System.Drawing.Point(32, 24);
   this.label7.Name = "label7";
   this.label7.Size = new System.Drawing.Size(96, 16);
   this.label7.TabIndex = 2;
   this.label7.Text = "接收端IP地址:";
   //
   // progressBar1
   //
   this.progressBar1.Location = new System.Drawing.Point(8, 136);
   this.progressBar1.Name = "progressBar1";
   this.progressBar1.Size = new System.Drawing.Size(400, 23);
   this.progressBar1.Step = 1;
   this.progressBar1.TabIndex = 3;
   //
   // textBox7
   //
   this.textBox7.Location = new System.Drawing.Point(120, 16);
   this.textBox7.Name = "textBox7";
   this.textBox7.ReadOnly = true;
   this.textBox7.Size = new System.Drawing.Size(160, 21);
   this.textBox7.TabIndex = 1;
   this.textBox7.Text = "";
   //
   // label8
   //
   this.label8.Location = new System.Drawing.Point(40, 48);
   this.label8.Name = "label8";
   this.label8.Size = new System.Drawing.Size(80, 16);
   this.label8.TabIndex = 2;
   this.label8.Text = "包的总数量:";
   //
   // label9
   //
   this.label9.Location = new System.Drawing.Point(176, 48);
   this.label9.Name = "label9";
   this.label9.Size = new System.Drawing.Size(224, 16);
   this.label9.TabIndex = 2;
   this.label9.Text = "(范围:10000 - 60000 单位:字节)";
   //
   // textBox8
   //
   this.textBox8.Location = new System.Drawing.Point(120, 40);
   this.textBox8.Name = "textBox8";
   this.textBox8.ReadOnly = true;
   this.textBox8.Size = new System.Drawing.Size(160, 21);
   this.textBox8.TabIndex = 1;
   this.textBox8.Text = "";
   //
   // label10
   //
   this.label10.Location = new System.Drawing.Point(8, 72);
   this.label10.Name = "label10";
   this.label10.Size = new System.Drawing.Size(120, 16);
   this.label10.TabIndex = 2;
   this.label10.Text = "最后一个包的大小:";
   //
   // textBox9
   //
   this.textBox9.Location = new System.Drawing.Point(120, 64);
   this.textBox9.Name = "textBox9";
   this.textBox9.ReadOnly = true;
   this.textBox9.Size = new System.Drawing.Size(80, 21);
   this.textBox9.TabIndex = 1;
   this.textBox9.Text = "";
   //
   // label11
   //
   this.label11.Location = new System.Drawing.Point(200, 72);
   this.label11.Name = "label11";
   this.label11.Size = new System.Drawing.Size(96, 16);
   this.label11.TabIndex = 2;
   this.label11.Text = "(单位:字节)";
   //
   // label12
   //
   this.label12.Location = new System.Drawing.Point(16, 96);
   this.label12.Name = "label12";
   this.label12.Size = new System.Drawing.Size(104, 16);
   this.label12.TabIndex = 2;
   this.label12.Text = "已发送包的数量:";
   //
   // textBox10
   //
   this.textBox10.Location = new System.Drawing.Point(120, 88);
   this.textBox10.Name = "textBox10";
   this.textBox10.ReadOnly = true;
   this.textBox10.Size = new System.Drawing.Size(80, 21);
   this.textBox10.TabIndex = 1;
   this.textBox10.Text = "";
   //
   // EzoneSend
   //
   this.AutoScaleBaseSize = new System.Drawing.Size(6, 14);
   this.ClientSize = new System.Drawing.Size(416, 389);
   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(0, 256);
   this.groupBox1.Name = "groupBox1";
   this.groupBox1.Size = new System.Drawing.Size(408, 48);
   this.groupBox1.TabIndex = 0;
   this.groupBox1.TabStop = false;
   this.groupBox1.Text = "系统控制";
   //
   // button1
   //
   this.button1.Location = new System.Drawing.Point(8, 16);
   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(0, 72);
   this.groupBox3.Name = "groupBox3";
   this.groupBox3.Size = new System.Drawing.Size(408, 184);
   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(0, 0);
   this.groupBox2.Name = "groupBox2";
   this.groupBox2.Size = new System.Drawing.Size(408, 72);
   this.groupBox2.TabIndex = 3;
   this.groupBox2.TabStop = false;
   this.groupBox2.Text = "系统设置";
   //
   // textBox5
   //
   this.textBox5.Location = new System.Drawing.Point(320, 40);
   this.textBox5.Name = "textBox5";
   this.textBox5.Size = new System.Drawing.Size(80, 21);
   this.textBox5.TabIndex = 3;
   this.textBox5.Text = "8888";
   //
   // label4
   //
   this.label4.Location = new System.Drawing.Point(280, 48);
   this.label4.Name = "label4";
   this.label4.Size = new System.Drawing.Size(100, 16);
   this.label4.TabIndex = 2;
   this.label4.Text = "端口:";
   //
   // textBox4
   //
   this.textBox4.Location = new System.Drawing.Point(104, 16);
   this.textBox4.Name = "textBox4";
   this.textBox4.ReadOnly = true;
   this.textBox4.Size = new System.Drawing.Size(160, 21);
   this.textBox4.TabIndex = 1;
   this.textBox4.Text = "";
   //
   // label3
   //
   this.label3.Location = new System.Drawing.Point(16, 24);
   this.label3.Name = "label3";
   this.label3.Size = new System.Drawing.Size(100, 16);
   this.label3.TabIndex = 0;
   this.label3.Text = "本机IP地址:";
   //
   // textBox1
   //
   this.textBox1.Location = new System.Drawing.Point(104, 40);
   this.textBox1.Name = "textBox1";
   this.textBox1.Size = new System.Drawing.Size(160, 21);
   this.textBox1.TabIndex = 1;
   this.textBox1.Text = "";
   //
   // label1
   //
   this.label1.Location = new System.Drawing.Point(16, 48);
   this.label1.Name = "label1";
   this.label1.Size = new System.Drawing.Size(100, 16);
   this.label1.TabIndex = 0;
   this.label1.Text = "服务端IP地址:";
   //
   // label2
   //
   this.label2.Location = new System.Drawing.Point(64, 24);
   this.label2.Name = "label2";
   this.label2.Size = new System.Drawing.Size(100, 16);
   this.label2.TabIndex = 0;
   this.label2.Text = "文件名:";
   //
   // textBox2
   //
   this.textBox2.Location = new System.Drawing.Point(120, 16);
   this.textBox2.Name = "textBox2";
   this.textBox2.ReadOnly = true;
   this.textBox2.Size = new System.Drawing.Size(160, 21);
   this.textBox2.TabIndex = 1;
   this.textBox2.Text = "";
   //
   // textBox8
   //
   this.textBox8.Location = new System.Drawing.Point(120, 64);
   this.textBox8.Name = "textBox8";
   this.textBox8.ReadOnly = true;
   this.textBox8.Size = new System.Drawing.Size(160, 21);
   this.textBox8.TabIndex = 5;
   this.textBox8.Text = "";
   //
   // textBox9
   //
   this.textBox9.Location = new System.Drawing.Point(120, 88);
   this.textBox9.Name = "textBox9";
   this.textBox9.ReadOnly = true;
   this.textBox9.Size = new System.Drawing.Size(80, 21);
   this.textBox9.TabIndex = 4;
   this.textBox9.Text = "";
   //
   // label8
   //
   this.label8.Location = new System.Drawing.Point(40, 72);
   this.label8.Name = "label8";
   this.label8.Size = new System.Drawing.Size(80, 16);
   this.label8.TabIndex = 8;
   this.label8.Text = "包的总数量:";
   //
   // label10
   //
   this.label10.Location = new System.Drawing.Point(8, 96);
   this.label10.Name = "label10";
   this.label10.Size = new System.Drawing.Size(120, 16);
   this.label10.TabIndex = 9;
   this.label10.Text = "最后一个包的大小:";
   //
   // label11
   //
   this.label11.Location = new System.Drawing.Point(200, 96);
   this.label11.Name = "label11";
   this.label11.Size = new System.Drawing.Size(96, 16);
   this.label11.TabIndex = 7;
   this.label11.Text = "(单位:字节)";
   //
   // label12
   //
   this.label12.Location = new System.Drawing.Point(16, 120);
   this.label12.Name = "label12";
   this.label12.Size = new System.Drawing.Size(104, 16);
   this.label12.TabIndex = 6;
   this.label12.Text = "已接收包的数量:";
   //
   // textBox10
   //
   this.textBox10.Location = new System.Drawing.Point(120, 112);
   this.textBox10.Name = "textBox10";
   this.textBox10.ReadOnly = true;
   this.textBox10.Size = new System.Drawing.Size(80, 21);
   this.textBox10.TabIndex = 3;
   this.textBox10.Text = "";
   //
   // progressBar1
   //
   this.progressBar1.Location = new System.Drawing.Point(8, 152);
   this.progressBar1.Name = "progressBar1";
   this.progressBar1.Size = new System.Drawing.Size(392, 23);
   this.progressBar1.Step = 1;
   this.progressBar1.TabIndex = 10;
   //
   // textBox3
   //
   this.textBox3.Location = new System.Drawing.Point(120, 40);
   this.textBox3.Name = "textBox3";
   this.textBox3.ReadOnly = true;
   this.textBox3.Size = new System.Drawing.Size(160, 21);
   this.textBox3.TabIndex = 5;
   this.textBox3.Text = "";
   //
   // label5
   //
   this.label5.Location = new System.Drawing.Point(48, 48);
   this.label5.Name = "label5";
   this.label5.Size = new System.Drawing.Size(72, 16);
   this.label5.TabIndex = 8;
   this.label5.Text = "包的大小:";
   //
   // label6
   //
   this.label6.Location = new System.Drawing.Point(288, 48);
   this.label6.Name = "label6";
   this.label6.Size = new System.Drawing.Size(96, 16);
   this.label6.TabIndex = 7;
   this.label6.Text = "(单位:字节)";
   //
   // EzoneReceive
   //
   this.AutoScaleBaseSize = new System.Drawing.Size(6, 14);
   this.ClientSize = new System.Drawing.Size(410, 311);
   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-公共模块///////////////////////////////////////