发送:
cs
udpClient.Send(bytes, bytes.Length, "127.0.0.1", 11001);
--发送的数据是byte类型,指定ip和端口
接收:
cs
public MainWindow()
{
InitializeComponent();
udpClient = new UdpClient(11001); // 监听端口11001
Task.Run(() => ListenForMessages());
}
private void ListenForMessages()
{
try
{
IPEndPoint remoteEP = new IPEndPoint(IPAddress.Any, 11001);
while (true)
{
byte[] bytes = udpClient.Receive(ref remoteEP);
string receivedData = Encoding.UTF8.GetString(bytes); // 使用UTF-8解码
// 使用UI线程
Dispatcher.Invoke(() =>
{
// 更新UI显示接收到的消息
messagesTextBox.Text += receivedData + Environment.NewLine;
});
}
}
catch (Exception ex)
{
// 处理异常
}
}
--需要开个线程不停地调用Receive
样例:GitHub - zzp229/UDP-: 使用wpf实现一个基于UDP的额聊天系统,包括发群聊、私信、图片和文件
稍微大点的图片或文件就需要分包才能发送,只实现了发送文字和发送小图片功能