首页 »DotNet » socket传输文件:C#实现Socket传输简单数据 »正文
socket传输文件:C#实现Socket传输简单数据
来源: 发布时间:星期五, 2009年1月9日 浏览:90次 评论:0
运行 后 先要点击开始接收按钮后才能点击发送数据 Form1.cs代码如下 using ; using .Collections.Generic; using .ComponentModel; using .Data; using .Drawing; using .Text; using .Windows.Forms; using .Net.Sockets; using .IO; using .Net; WinSocket ...{ public partial Form1 : Form ...{ BackgroundWorker bgWorker = null; public Form1 ...{ InitializeComponent; bgWorker = BackgroundWorker; bgWorker.WorkerSupportsCancellation = true; this.AddEvent; } /**//// <summary> /// 注册事件 /// </summary> private void AddEvent ...{ this.bgWorker.DoWork DoWorkEventHandler(bgWorker_DoWork); this.btnSend.Click EventHandler(btnSend_Click); this.btnStartReceive.Click EventHandler(btnStartReceive_Click); this.btnStopRecevie.Click EventHandler(btnStopRecevie_Click); } void bgWorker_DoWork(object sender, DoWorkEventArgs e) ...{ Socket receiveSocket = Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); IPEndPo endpo = IPEndPo(0, 8000);
receiveSocket.Bind(endpo); receiveSocket.Listen(10); try ...{ while (true) ...{ Socket tmpSocket = receiveSocket.Accept; buffer = [tmpSocket.ReceiveBufferSize]; (tmpSocket.Receive(buffer) > 0) ...{ textBox2.Text Encoding.UTF8.GetString(buffer) + Environment.NewLine; } ...{ .Threading.Thread.Sleep(1000); } } } catch(Exception err) ...{ MessageBox.Show(err.Message); } } void btnStopRecevie_Click(object sender, EventArgs e) ...{ (this.bgWorker.IsBusy) ...{ this.bgWorker.CancelAsync; this.btnStartReceive.Enabled = true; this.btnStopRecevie.Enabled = false; } } void btnStartReceive_Click(object sender, EventArgs e) ...{ this.btnStartReceive.Enabled = false; this.bgWorker.RunWorkerAsync; this.btnStopRecevie.Enabled = true; }
void btnSend_Click(object sender, EventArgs e) ...{ Socket sendSocket = Socket( AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); sendSocket.Connect("187.186.0.63", 8000); buffer = Encoding.UTF8.GetBytes(textBox1.Text); sendSocket.Send(buffer); sendSocket.Shutdown(SocketShutdown.Both); sendSocket.Close; } private void Form1_Load(object sender, EventArgs e) ...{ this.btnStartReceive.Enabled = true; this.btnStopRecevie.Enabled = false; } } } Form.Designer.cs代码如下 WinSocket ...{ partial Form1 ...{ /**//// <summary> /// 必需设计器变量 /// </summary> private .ComponentModel.IContainer components = null; /**//// <summary> /// 清理所有正在使用资源 /// </summary> /// <param name="disposing">如果应释放托管资源为 true;否则为 false</param> protected override void Dispose(bool disposing) ...{ (disposing && (components != null)) ...{ components.Dispose; } base.Dispose(disposing); }
Windows 窗体设计器生成 代码#region Windows 窗体设计器生成 代码 /**//// <summary> /// 设计器支持所需思路方法 - 不要 /// 使用代码编辑器修改此思路方法内容 /// </summary> private void InitializeComponent ...{ this.btnSend = .Windows.Forms.Button; this.textBox1 = .Windows.Forms.TextBox; this.textBox2 = .Windows.Forms.TextBox; this.btnStartReceive = .Windows.Forms.Button; this.btnStopRecevie = .Windows.Forms.Button; this.SuspendLayout; // // btnSend // this.btnSend.Location = .Drawing.Po(164, 35); this.btnSend.Name = "btnSend"; this.btnSend.Size = .Drawing.Size(75, 23); this.btnSend.TabIndex = 0; this.btnSend.Text = "发送"; this.btnSend.UseVisualStyleBackColor = true; // // textBox1 // this.textBox1.Location = .Drawing.Po(24, 37); this.textBox1.Name = "textBox1"; this.textBox1.Size = .Drawing.Size(100, 21); this.textBox1.TabIndex = 1; // // textBox2 // this.textBox2.Location = .Drawing.Po(24, 123); this.textBox2.Multiline = true; this.textBox2.Name = "textBox2"; this.textBox2.Size = .Drawing.Size(234, 131); this.textBox2.TabIndex = 2; // // btnStartReceive // this.btnStartReceive.Location = .Drawing.Po(24, 84); this.btnStartReceive.Name = "btnStartReceive"; this.btnStartReceive.Size = .Drawing.Size(75, 23); this.btnStartReceive.TabIndex = 3; this.btnStartReceive.Text = "开始接收"; this.btnStartReceive.UseVisualStyleBackColor = true; // // btnStopRecevie // this.btnStopRecevie.Location = .Drawing.Po(164, 84); this.btnStopRecevie.Name = "btnStopRecevie"; this.btnStopRecevie.Size = .Drawing.Size(75, 23); this.btnStopRecevie.TabIndex = 4; this.btnStopRecevie.Text = "停止接收"; this.btnStopRecevie.UseVisualStyleBackColor = true; // // Form1 // this.AutoScaleDimensions = .Drawing.SizeF(6F, 12F); this.AutoScaleMode = .Windows.Forms.AutoScaleMode.Font; this.ClientSize = .Drawing.Size(292, 266); this.Controls.Add(this.btnStopRecevie); this.Controls.Add(this.btnStartReceive); this.Controls.Add(this.textBox2); this.Controls.Add(this.textBox1); this.Controls.Add(this.btnSend); this.Name = "Form1"; this.Text = "Form1"; this.Load .EventHandler(this.Form1_Load); this.ResumeLayout(false); this.PerformLayout; } #endregion private .Windows.Forms.Button btnSend; private .Windows.Forms.TextBox textBox1; private .Windows.Forms.TextBox textBox2; private .Windows.Forms.Button btnStartReceive; private .Windows.Forms.Button btnStopRecevie; } }
相关文章
读者评论
发表评论
|
|