在.NET框架中,UDP通信是通过System.Net.Sockets
命名空间下的UdpClient
类实现的。以下是关于如何在WinForms应用程序中使用UDP通信的一些基本概念,常用属性和方法,以及一些示例。
UdpClient
类提供了发送和接收UDP数据报的方法。它是无连接的,即发送和接收数据报不需要建立和关闭连接。
常用的属性有:
Available
:获取要读取的可用数据的数量(以字节为单位)。Client
:获取或设置底层网络套接字。ExclusiveAddressUse
:获取或设置一个布尔值,该值指定是否允许只有一个套接字绑定到特定端口。常用的方法有:
Close
:关闭UDP连接并释放所有相关资源。Connect
:连接到远程主机。Receive
:接收一个UDP数据报。Send
:发送一个UDP数据报。C#public partial class Form1 : Form
{
private UdpClient udpClient;
public Form1()
{
InitializeComponent();
udpClient = new UdpClient();
}
/// <summary>
/// 发送
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void btnSend_Click(object sender, EventArgs e)
{
byte[] bytes = Encoding.ASCII.GetBytes(txtSend.Text);
udpClient.Send(bytes, bytes.Length, "127.0.0.1", 3001);
}
/// <summary>
/// 接收
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void btnReceive_Click(object sender, EventArgs e)
{
Task.Run(() =>
{
while (true)
{
string value = Receive();
this.Invoke(() =>
{
txtReceive.AppendText(value);
txtReceive.AppendText(System.Environment.NewLine);
});
}
});
}
public string Receive()
{
IPEndPoint remoteEndPoint = new IPEndPoint(IPAddress.Any, 0);
byte[] bytes = udpClient.Receive(ref remoteEndPoint);
return Encoding.ASCII.GetString(bytes);
}
}
本文作者:技术老小子
本文链接:
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!