UDP 数据包结构
一个UDP数据包通常包含以下几个部分:
- 源端口(16位):发送方的端口号。
- 目标端口(16位):接收方的端口号。
- 长度(16位):UDP头部和数据的总长度。
- 校验和(16位):用于错误检测(可选)。
- Payload(有效载荷):实际要传输的数据。
PDU(Protocol Data Unit)长度是指在网络协议中传输的数据单元的大小。在不同的协议中,PDU的定义和长度计算方法可能会有所不同。
通信的示例代码:
using System;
using System.Net;
using System.Net.Sockets;
using System.Text;
class Program
{
static void Main()
{
// 创建UDP套接字
using (UdpClient udpClient = new UdpClient())
{
// 设置源端口
int sourcePort = 12345;
udpClient.Client.Bind(new IPEndPoint(IPAddress.Any, sourcePort)); // 绑定源端口
// 定义目标地址和端口
string targetIp = "192.168.1.100"; // 替换为目标IP
int targetPort = 54321; // 替换为目标端口
// 定义要发送的数据
string message = "Hello, UDP!";
byte[] payload = Encoding.UTF8.GetBytes(message);
// 发送数据
udpClient.Send(payload, payload.Length, targetIp, targetPort);
Console.WriteLine("Message sent to {0}:{1}", targetIp, targetPort);
}
}
}