当前位置: 首页 > news >正文

C#udpClient组播

一、0udpClient

控件:

button(打开,关闭,发送),textbox,richTextBox

打开UDP:

UdpClient udp:

namespace _01udpClient
{public partial class Form1 : Form{public Form1(){InitializeComponent();}//打开UdpClient udp;private void button1_Click(object sender, EventArgs e){//1创建udp对象 指定ip地址和端口号udp = new UdpClient(new IPEndPoint(IPAddress.Any, 8080));//2 接收数据startReceive();}void startReceive(){new Thread(() =>{try{while (true){//创建ip接受客户端的ip地址IPEndPoint ip = null;//接收数据 返回字节数组byte[] body =  udp.Receive(ref ip);string s = Encoding.UTF8.GetString(body);BeginInvoke((Action)(() =>{richTextBox1.AppendText(ip.ToString() + ":" + s + "\t\n");}));}}catch{}}).Start();}//关闭private void button2_Click(object sender, EventArgs e){udp.Close();//关闭udp = null;}private void button3_Click(object sender, EventArgs e){byte[] bs = Encoding.UTF8.GetBytes(this.textBox1.Text);//发数据//参数1 字节数组//参数2 字节长度//参数3 目标主机地址//参数4 端口号udp.Send(bs, bs.Length, "192.168.107.71", 8080);}}
}

二、udpClient组播

namespace _02udpClinet组播
{public partial class Form1 : Form{public Form1(){InitializeComponent();}//打开服务器private void button3_Click(object sender, EventArgs e){udp = new UdpClient(new IPEndPoint(IPAddress.Any, 8080));strartReceive();}UdpClient udp;//异步的方式//1 new Thread() 分线程//2 Task.Run() 异步任务//3 async(异步)和await (等待)async void strartReceive(){while (true){//await 跟一个异步的任务// 等待异步结束之后 再去执行//receiveAsync() 异步接收数据UdpReceiveResult body = await udp.ReceiveAsync();// body.RemoteEndPoint 远程终端//body.Buffer 数据字节数组BeginInvoke((Action)(() =>{richTextBox1.AppendText(body.RemoteEndPoint.ToString() + ":" + Encoding.UTF8.GetString(body.Buffer)+"\t\n");}));}}// 加入组播private void button1_Click(object sender, EventArgs e){//Join 加入udp.JoinMulticastGroup(IPAddress.Parse(this.textBox1.Text));//加入组播地址}private void button2_Click(object sender, EventArgs e){//发送消息byte[] bs =  Encoding.UTF8.GetBytes(this.textBox2.Text);udp.Send(bs, bs.Length, this.textBox1.Text, 8080);}}
}
http://www.lryc.cn/news/387852.html

相关文章:

  • 《昇思25天学习打卡营第14天 | 昇思MindSpore基于MindNLP+MusicGen生成自己的个性化音乐》
  • 新奥集团校招面试经验分享、测评笔试题型分析
  • 【推荐】Prometheus+Grafana企业级监控预警实战
  • 深度剖析:前端如何驾驭海量数据,实现流畅渲染的多种途径
  • AI时代,你的工作会被AI替代吗?
  • Java_日志
  • springcould-config git源情况下报错app仓库找不到
  • MySQL serverTimezone=UTC
  • 基于YOLOv9的PCB板缺陷检测
  • 高考结束,踏上西北的美食之旅
  • 人工智能 (AI) 在能源系统中应用的机会和风险
  • [AIGC] 定时删除日志文件
  • C++:typeid4种cast转换
  • vue3的配置和使用
  • 决策树划分属性依据
  • 短视频利器 ffmpeg (2)
  • 【计算机毕业设计】基于Springboot的智能物流管理系统【源码+lw+部署文档】
  • 【2024】LeetCode HOT 100——图论
  • 解析Java中1000个常用类:Currency类,你学会了吗?
  • 5.x86游戏实战-CE定位基地址
  • istitle()方法——判断首字母是否大写其他字母小写
  • Linux实用命令练习
  • 刷题——二叉搜索树与双向链表
  • 【Linux】进程优先级 | 环境变量
  • 最新手动迁移WordPress方法
  • ChatGPT在程序开发中的应用:提升生产力的秘密武器
  • AI与Python共舞:如何利用深度学习优化推荐系统?
  • URLSearchParams: 浏览器中的查询字符串处理利器
  • 2024最新初级会计职称题库来啦!!!
  • Stirling PDF 部署 - 强大的PDF Web在线编辑工具箱