首页 电脑学院 黑客教程 网站技术 网页特效 免费论文 公文写作 演讲发言 实用文档 职场指南 时尚生活 情感男女 其他资讯

您的位置:首页-> 网站技术-> .NET技术-> 亿众国际点对点文件传输程序
亿众国际点对点文件传输程序
////////////////////////////////////////////////////////////////////////////////
//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-公共模块///////////////////////////////////////



在百度中查找更多亿众国际点对点文件传输程序的内容
职场宝典   职场故事   职场跳槽   职场文化   职场理财   职场充电   情感天地   职场女性   职场礼仪   职场新人
报告总结   述职报告 工作总结 调查报告 工作汇报 计划方案 个人总结 社会实践 规章制度 调研报告 
  实习报告 考察报告 辞职报告 
演讲发言   竞职演说   就职演说   精彩演说   爱国演讲   英语演讲   十七大演讲   安全生产演讲稿   
节日祝福   重阳节 国庆节 教师节 中秋节 情人节 七夕节 劳动节 妇女节 清明节 愚人节 春节 元旦 圣诞节  儿童节  端午节 母亲节 新婚祝福 生日祝福 
讲话致辞   开业开幕   会议主持   庆典致辞   会议发言   党风廉政   党政报告   贺电慰问   婚丧嫁娶   思想宣传
法律常识   基本常识   法律文书   权益常识   劳动保障   婚姻继承   民事诉讼   刑事诉讼   
党建材料   入党申请   思想学习   党性分析   思想汇报   转正申请   民主生活   党委党建   入团申请   申报材料
求职简历   个人简历   求职自荐   求职谋略   面试技巧   求职英语   自我鉴定   英文简历   简历封面
心得体会   心得体会   经验交流   读后感   
时政热点   和谐社会   先进性教育   新农村建设   十七大   八荣八耻   科学发展观   劳动合同法   
人际沟通   社交技巧   社交礼仪   口才技巧   谈话技巧   演讲技巧   
营销技巧   电话销售   网络销售   推销技巧   促销技巧   销售口才   营销手段   销售技巧   谈判技巧   

“ 亿众国际点对点文件传输程序”来源于网络,版权归作者所有!勿用于商业用途。

.NET技术

ASP技术
PHP技术
JSP技术
.NET技术
服务器技术
数据库开发
其它类

本类阅读TOP10

·数据库的连接串(中文)
·DES(Data Encryption Standard)加密解密整理
·利用Jmail发送和接收邮件(C#)
·.NET Framework 中多语言支持的实现
·动态菜单
·.NET 框架类库(上)
·C#中的事件
·微软.NET战略和ASP.NET简介(1)
·加密与解密
·ASP.NET中的代码分离

广告


关于本站|服务条款|广告服务|客服中心|发布文章|网站留言