运行程序后, 先要点击开始接收按钮后才能点击发送数据 Form1.cs代码如下 using System; namespace WinSocket /**//// <summary> void bgWorker_DoWork(object sender, DoWorkEventArgs e) receiveSocket.Bind(endpoint); } void btnStopRecevie_Click(object sender, EventArgs e) void btnStartReceive_Click(object sender, EventArgs e) void btnSend_Click(object sender, EventArgs e) byte[] buffer = Encoding.UTF8.GetBytes(textBox1.Text); private void Form1_Load(object sender, EventArgs e) namespace WinSocket /**//// <summary> Windows 窗体设计器生成的代码#region Windows 窗体设计器生成的代码 /**//// <summary> } #endregion private System.Windows.Forms.Button btnSend;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Net.Sockets;
using System.IO;
using System.Net;
…{
public partial class Form1 : Form
…{
BackgroundWorker bgWorker = null;
public Form1()
…{
InitializeComponent();
bgWorker = new BackgroundWorker();
bgWorker.WorkerSupportsCancellation = true;
this.AddEvent();
}
/// 注册事件
/// </summary>
private void AddEvent()
…{
this.bgWorker.DoWork += new DoWorkEventHandler(bgWorker_DoWork);
this.btnSend.Click += new EventHandler(btnSend_Click);
this.btnStartReceive.Click += new EventHandler(btnStartReceive_Click);
this.btnStopRecevie.Click += new EventHandler(btnStopRecevie_Click);
}
…{
Socket receiveSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
IPEndPoint endpoint = new IPEndPoint(0, 8000);
receiveSocket.Listen(10);
try
…{
while (true)
…{
Socket tmpSocket = receiveSocket.Accept();
byte[] buffer = new byte[tmpSocket.ReceiveBufferSize];
if (tmpSocket.Receive(buffer) > 0)
…{
textBox2.Text += Encoding.UTF8.GetString(buffer) + Environment.NewLine;
}
else
…{
System.Threading.Thread.Sleep(1000);
}
}
catch(Exception err)
…{
MessageBox.Show(err.Message);
}
}
…{
if (this.bgWorker.IsBusy)
…{
this.bgWorker.CancelAsync();
this.btnStartReceive.Enabled = true;
this.btnStopRecevie.Enabled = false;
}
}
…{
this.btnStartReceive.Enabled = false;
this.bgWorker.RunWorkerAsync();
this.btnStopRecevie.Enabled = true;
}
…{
Socket sendSocket = new Socket( AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
sendSocket.Connect(“187.186.0.63”, 8000);
sendSocket.Send(buffer);
sendSocket.Shutdown(SocketShutdown.Both);
sendSocket.Close();
}
…{
this.btnStartReceive.Enabled = true;
this.btnStopRecevie.Enabled = false;
}
}
}
Form.Designer.cs代码如下
…{
partial class Form1
…{
/**//// <summary>
/// 必需的设计器变量。
/// </summary>
private System.ComponentModel.IContainer components = null;
/// 清理所有正在使用的资源。
/// </summary>
/// <param name=”disposing”>如果应释放托管资源,为 true;否则为 false。</param>
protected override void Dispose(bool disposing)
…{
if (disposing && (components != null))
…{
components.Dispose();
}
base.Dispose(disposing);
}
/// 设计器支持所需的方法 – 不要
/// 使用代码编辑器修改此方法的内容。
/// </summary>
private void InitializeComponent()
…{
this.btnSend = new System.Windows.Forms.Button();
this.textBox1 = new System.Windows.Forms.TextBox();
this.textBox2 = new System.Windows.Forms.TextBox();
this.btnStartReceive = new System.Windows.Forms.Button();
this.btnStopRecevie = new System.Windows.Forms.Button();
this.SuspendLayout();
//
// btnSend
//
this.btnSend.Location = new System.Drawing.Point(164, 35);
this.btnSend.Name = “btnSend”;
this.btnSend.Size = new System.Drawing.Size(75, 23);
this.btnSend.TabIndex = 0;
this.btnSend.Text = “发送”;
this.btnSend.UseVisualStyleBackColor = true;
//
// textBox1
//
this.textBox1.Location = new System.Drawing.Point(24, 37);
this.textBox1.Name = “textBox1”;
this.textBox1.Size = new System.Drawing.Size(100, 21);
this.textBox1.TabIndex = 1;
//
// textBox2
//
this.textBox2.Location = new System.Drawing.Point(24, 123);
this.textBox2.Multiline = true;
this.textBox2.Name = “textBox2”;
this.textBox2.Size = new System.Drawing.Size(234, 131);
this.textBox2.TabIndex = 2;
//
// btnStartReceive
//
this.btnStartReceive.Location = new System.Drawing.Point(24, 84);
this.btnStartReceive.Name = “btnStartReceive”;
this.btnStartReceive.Size = new System.Drawing.Size(75, 23);
this.btnStartReceive.TabIndex = 3;
this.btnStartReceive.Text = “开始接收”;
this.btnStartReceive.UseVisualStyleBackColor = true;
//
// btnStopRecevie
//
this.btnStopRecevie.Location = new System.Drawing.Point(164, 84);
this.btnStopRecevie.Name = “btnStopRecevie”;
this.btnStopRecevie.Size = new System.Drawing.Size(75, 23);
this.btnStopRecevie.TabIndex = 4;
this.btnStopRecevie.Text = “停止接收”;
this.btnStopRecevie.UseVisualStyleBackColor = true;
//
// Form1
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.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 += new System.EventHandler(this.Form1_Load);
this.ResumeLayout(false);
this.PerformLayout();
private System.Windows.Forms.TextBox textBox1;
private System.Windows.Forms.TextBox textBox2;
private System.Windows.Forms.Button btnStartReceive;
private System.Windows.Forms.Button btnStopRecevie;
}
}
c#实现socket传输简单数据_c#应用
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com 特别注意:本站所有转载文章言论不代表本站观点! 本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。未经允许不得转载:IDC资讯中心 » c#实现socket传输简单数据_c#应用
相关推荐
-      利用c#远程存取access数据库_c#应用
-      c# 3.0新特性系列:隐含类型var_c#教程
-      c#动态生成树型结构的web程序设计_c#应用
-      论c#变得越来越臃肿是不可避免的_c#应用
-      用c#监控并显示cpu状态信息_c#应用
-      c#中实现vb中的createobject方法_c#应用
-      photoshop给花瓶打造彩绘效果_photoshop教程
-      使用c#创建sql server的存储过程_c#应用