发送:
udpClient.Send(bytes, bytes.Length, "127.0.0.1", 11001);
--发送的数据是byte类型,指定ip和端口
接收:
public MainWindow()
{InitializeComponent();udpClient = new UdpClient(11001); // 监听端口11001Task.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的额聊天系统,包括发群聊、私信、图片和文件
稍微大点的图片或文件就需要分包才能发送,只实现了发送文字功能