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);
}
}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值