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

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

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.kler.cn/a/300719.html

相关文章:

  • LabVIEW实车四轮轮速信号再现系统
  • 《汽车维修技师》是什么级别的期刊?是正规期刊吗?能评职称吗?
  • 【时时三省】(C语言基础)柔性数组的使用
  • 【算法学习笔记】30:埃氏筛(Sieve of Eratosthenes)和线性筛(Linear Sieve)
  • 【Block总结】掩码窗口自注意力 (M-WSA)
  • SpringSecurity-前后端分离
  • HTML5中`<area>`标签深入全面解析
  • 学习笔记|《白话机器学习的数学》
  • OpenCV结构分析与形状描述符(19)查找二维点集的最小面积外接旋转矩形函数minAreaRect()的使用
  • C++中的for-each循环
  • 单例模式解析
  • 基于高通主板的ARM架构服务器
  • 深入理解Java虚拟机:Jvm总结-虚拟机字节码执行引擎
  • 面试常见题之java
  • 甘特图组件DHTMLX Gantt中文教程 - 如何实现持久UI状态
  • Redis的存储原理和数据模型
  • Linux EOF详解使用
  • vue3判断elementui中el-form是否更新变化,变化就提示是否保存,没变就直接离开
  • 语法课第七节 结构体 类 指针 引用(知识点+题目)
  • golang hertz框架入门
  • 数据结构 - 链表
  • 数据分析-19-时间序列预测之时间窗口数据的划分
  • 总结——薄基础_Android开发_简易计算器__非教程
  • Nestjs微服务简单案例
  • List<Map<String, Object>>汇总统计排序
  • paddle模型转onnx介绍(以utc-mini为例)