C# UDP与TCP点发【速发速断】模式

embedded/2024/11/13 9:39:09/

1、UDP 客户端

//由于收发都在本机,所以只用一个IP地址
IPAddress addr= IPAddress.Parse("127.0.0.1");
var ptLocal = new IPEndPoint(addr,9001);//本机节点,用于发送var ptDst = new IPEndPoint(addr,9002);//目标节点
//在本地建立udp服务
var udp = new Udpclient(ptLocal);
bytell buffer = Encoding.UTF8.GetBytes("hello")//将内容发给ptDstudp.Send(buffer,buffer.Length,ptDst);

2、UDP服务端

//由于收发都在本机,所以只用一个IP地址
IPAddress addr= IPAddress.Parse("127.0.0.1");
var ptLocal = new IPEndPoint(addr,9001);//本机节点,用于发送var udp = new Udpclient(ptLocal);var thread = new Thread(Res)
thread.start();var ptDst = new IPEndPoint(addr,9002);//目标节点void Res()
{while(true)
{
var received =udp.Receive(ref ptDst);
string info = Encoding.UTF8.GetString(received);
info =$"{ptDst.Address}:{ptDst.Port}:{info}";
Console.WriteLine(info);
bytell buf = Encoding.UTF8.GetBytes("What are our children's names");
udp.send(buf,buf.Length,ptDst);//将内容发给ptDst
}
}

3、TCP客户端

TcpClient tcp = new Tcpclient("127.0.0.1",9002);
NetworkStreamn=tcp.GetStream();
var w = new BinaryWriter(n);
byte[] buffer = Encoding.UTF8.GetBytes("hello");
w.Write(buffer,0,buffer.Length);
Thread.Sleep(2000); //这里间隔一下 ,要不然服务器端看不到客户端 , 多个点发采用Task处理
w.Flush();

4、TCP接收端

TcpListener serv = new TcpListener(IPAddress.Any,9002);
serv.start();var thread = new Thread(Res)
thread.start();void Res{Byte[] bytes = new Byte[256];
int i;
while(true)
{
var c=serv.AcceptTcpClient();
var n=c.GetStream();
while((i=n.Read(bytes,0,bytes.Length))!=0)
{
var msg=Encoding.AsCII.GetString(bytes,0,i);
Console.WriteLine($"Received:{msg}");
mSg += ",too";
var data = Encoding.AsCII.GetBytes(msg)
n.Write(data,0,data.Length);
}
}
}


http://www.ppmy.cn/embedded/113992.html

相关文章

maven pom文件中的变量定义

在 Maven 中,可以使用变量来简化 pom.xml 文件的维护和管理。这些变量通常被称为 属性 (properties),可以用来存储经常使用的值,如版本号、依赖库的版本等。使用属性可以使 pom.xml 更易于管理和维护,并且可以减少出错的机会。 下…

Modbus_tcp

目录 一:modbus起源 1.起源 2. 分类: 3. 优势: 4. 应用场景: 5.ModbusTCP特点(掌握): 二、 ModbusTCP的协议 1. 报文头 2. 寄存器 1. 线圈(Coils) 2. 离…

重学SpringBoot3-SpringApplicationRunListener

更多SpringBoot3内容请关注我的专栏:《SpringBoot3》 期待您的点赞👍收藏⭐评论✍ 重学SpringBoot3-SpringApplicationRunListener 1. 基本作用2. 如何实现2.1. 创建SpringApplicationRunListener2.2. 注册SpringApplicationRunListener2.3. 完整示例 3.…

财谷通抖音小店的独特魅力

在当今这个数字化飞速发展的时代,电子商务已成为推动经济增长的重要引擎之一,而短视频平台的崛起,更是为这一领域注入了新的活力。抖音,作为短视频领域的佼佼者,不仅是一个娱乐消遣的平台,更是一个潜力巨大…

Qwen 2.5:阿里巴巴集团的新一代大型语言模型

Qwen 2.5:阿里巴巴集团的新一代大型语言模型 摘要: 在人工智能领域,大型语言模型(LLMs)的发展日新月异,它们在自然语言处理(NLP)和多模态任务中扮演着越来越重要的角色。阿里巴巴集…

对抗性EM用于变分深度学习:在低剂量PET和低剂量CT中的半监督图像质量增强应用|文献速递--Transformer架构在医学影像分析中的应用

Title 题目 Adversarial EM for variational deep learning: Application to semi-supervised image quality enhancement in low-dose PET and low-dose CT 对抗性EM用于变分深度学习:在低剂量PET和低剂量CT中的半监督图像质量增强应用 01 文献速递介绍 医学影…

微服务网关终极进化:设计模式驱动的性能与可用性优化(四)

时间:2024年09月12日 作者:小蒋聊技术 邮箱:wei_wei10163.com 微信:wei_wei10 希望大家帮个忙!如果大家有工作机会,希望帮小蒋推荐一下,小蒋希望遇到一个认真做事的团队,一起努力…

WPF中的控件转换(Transform)

不可不知的WPF转换(Transform) 在WPF开发中,经常会需要用到UI控件的2D转换(如:旋转,缩放,移动,倾斜等功能),本文以一些简单的小例子,简述如何通过Transform类实现FrameworkElement对象的2D转换,仅供学习分享使用,如有不足之处,还请指正。 什么是Transform? 转…