wpf udp一个界面的发送接收
using System;
using System.Net;
using System.Net.Sockets;
using System.Windows.Threading;
public partial class MainWindow : Window//你自己创建wpf界面的名字
{
UdpClient udpcSend;//初始化udp收发需要的函数,这个udpcSend是一个全局变量
Thread thrRecv;//定义一个线程用于接收 是一个全局变量
public MainWindow()//你自己创建wpf界面的名字
{
InitializeComponent();
send();
receive();
}
//发送的函数
public void send()
{
udpcSend = new UdpClient(本机的udp端口);
remoteIpep = new IPEndPoint(IPAddress.Parse("192.168.1.1"), 161);//发送到的端口号以及IP地址
udpcSend.Send(发送数据, 发送数据长度, remoteIpep );//发送
}
//用于监听接收的函数,在主函数中调用,写在发送函数的下面
public void receive()
{
if (!IsUdpcRecvStart) // 未监听的情况,开始监听
{
thrRecv = new Thread(ReceiveMessage);
thrRecv.Start();
IsUdpcRecvStart = true;
}
else // 正在监听的情况,终止监听
{
thrRecv.Abort(); // 必须先关闭这个线程,否则会异常
IsUdpcRecvStart = false;
}
}
//接收函数
public void ReceiveMessage(object obj)
{//udpcSend = new UdpClient(本机的udp端口);
IPEndPoint remoteIpepss = new IPEndPoint(IPAddress.Any, 本机的udp端口);//接收到本机地址与本udp端口,添加 //与上方new的本机udp端口
while (true)
{
try
{
string jieshouIP = remoteIpepss.ToString();
string[] jieshouIPArray = jieshouIP.Split(':');
if (jieshouIPArray[0] == "0.0.0.0")
{
Console.WriteLine("开始接收");//程序启动还没开始接收但是接收监听函数已经打开
}
else
{
Console.WriteLine(jieshouIPArray[0]); //接收到信息的对面的ip地址
byte jieshoushuju[] = udpcSend.Receive(ref remoteIpepss);接收到的udp报文
}
}
catch (Exception ex){
Console.WriteLine(ex);
break;
}
}
}
}
这样一个简单的收发就结束了,如果本代码缺少using引用请自己根据缺少的引用进行添加