UDP
namespace UDPServer
{
public partial class Form1 : Form
{
UdpClient uc; //声明UDPClient
//UdpClient uc2;
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
uc = new UdpClient(); //初始化
uc.Connect(IPAddress.Parse("192.168.1.41"), 8888);
//uc2 = new UdpClient();
//uc2.Connect(IPAddress.Parse("192.168.1.41"), 7777);
for (int i = 0; i < 100; i++)
{
string temp = Convert.ToString(i);
//"由于UDP在发送数据前不需要与对方建立连接123";
//string temp = this.textBox1.Text; //保存TextBox文本
//将该文本转化为字节数组
byte[] b = System.Text.Encoding.UTF8.GetBytes(temp);
//向本机的8888端口发送数据
uc.Send(b, b.Length);
int sum = 0;
for (int m = 0; m < 1000; m++)
{
sum += m;
}
label1.Text = i.ToString();
Application.DoEvents();
}
}
private void button2_Click(object sender, EventArgs e)
{
label1.Text =DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
uc = new UdpClient(); //初始化
uc.Connect(IPAddress.Parse("192.168.1.41"), 7777);
DateTime date = DateTime.Now;
string temp = this.textBox1.Text; //保存TextBox文本
//将该文本转化为字节数组
byte[] b = System.Text.Encoding.UTF8.GetBytes(date.ToString("yyyy-MM-dd HH:mm:ss"));
byte[] b1 = System.Text.Encoding.UTF8.GetBytes("123456");
byte []b2=new byte[100];
int tempint = 1000000;
double tempdouble = 100000000.0001;
byte[] b3 = System.BitConverter.GetBytes(tempdouble);
byte[] b4 = System.BitConverter.GetBytes(tempint);
// b2[0] = 32;
b3.CopyTo(b2, 0);
b4.CopyTo(b2, 8);
b.CopyTo(b2, 12);
string sendtext = "";
sendtext = temp + "|" + tempint.ToString() + "|" + tempdouble.ToString();
byte[] bsend = System.Text.Encoding.UTF8.GetBytes(sendtext);
byte[] bb = System.Text.Encoding.UTF8.GetBytes(temp);
//向本机的7777端口发送数据
uc.Send(bsend , bsend.Length);
}
}
}
namespace Listener
{
public partial class frmMain : Form
{
private UdpClient _client;
private Thread _thread;
private delegate void AddTxt(String txt);
public frmMain()
{
InitializeComponent();
}
private void btnListen_Click(object sender, EventArgs e)
{
lvInfo.Items.Add("Start");
_thread = new Thread(new ThreadStart(Listen));
_thread.Start();
}
private void Listen()
{
try
{
//在本机指定的端口接收
//IPEndPoint iepe = new IPEndPoint(IPAddress.Parse("10.2.4.70"), Convert.ToInt32(txtPort.Text.Trim()));
IPEndPoint iepe = new IPEndPoint(IPAddress.Parse("192.168.1.41"), Convert.ToInt32(txtPort.Text.Trim()));
_client = new UdpClient(iepe);
IPEndPoint remote = new IPEndPoint(IPAddress.Any, 0);
//接收从远程主机发送过来的信息
while (true)
{
//add txt
AddTxt at = new AddTxt(AddItem);
//ref表示引用类型的 IPPoint实例接收消息
Byte[] receiveBytes = _client.Receive(ref remote);
this.BeginInvoke(at,receiveBytes.Length.ToString());
// this.BeginInvoke(at,System.Text.Encoding.UTF8.GetString(receiveBytes));
//for (int i = 0; i < receiveBytes.Length; i++)
//{
// this.BeginInvoke(at, receiveBytes[i].ToString());
//}
string recevedtext = System.Text.Encoding.UTF8.GetString(receiveBytes);
string[] receved = recevedtext.Split('|');
string ss0 = receved[0].ToString();
int ss1 = Convert.ToInt32(receved[1]);
double ss2 = Convert.ToDouble(receved[2]);
this.BeginInvoke(at, ss0);
this.BeginInvoke(at, ss1.ToString());
this.BeginInvoke(at, ss2.ToString());
}
}
catch (Exception ex)
{
AddTxt at = new AddTxt(AddItem);
this.BeginInvoke(at, ex.Message.ToString());
}
}
private void AddItem(String txt)
{
lvInfo.Items.Add(txt);
}
private void btnClose_Click(object sender, EventArgs e)
{
_client.Close();
_thread.Abort();
lvInfo.Items.Add("End");
}
}
}
浙公网安备 33010602011771号