C#中UDP的收发消息代码实现Demo

哈喽,大家好。

上几次我们写了TCP的收发,TCP/IP协议我们已经很熟悉,这里就不多做赘述了。

今天我们讲一下UDP的收发实现

在写具体代码之前,我们先简单了解一下UDP是什么,UDP也是一种网络当中常用的传输协议,你可以把它和TCP协议拿来做对比。

TCP我们都知道,在通信之前需要先进行三次握手然后在发送数据包。确保通信稳定顺畅后再进行发送

用来保证通信中的数据完整和稳定性。

UDP恰恰相反,在发送数据之前没有信息的验证,直接发,它也并不关心对方是否得到消息,也不在乎数据的完整性。

UDP的目标就是我直接把消息给你发出去,具体你能不能收到,基本靠造化。

乍一看,好像这样子不太好,弊端多多。但为什么还是要使用这种协议呢?难道没有优点吗?

当然不是,在我们网络通信安全中有这样一句话,

“凡有选择,必有代价”

UDP这种方式传输最大的优点和特点就是发送速度特别快,不会在乎对方是否接受,也不用担心消息的完整性。直接发送。

这就是UDP的最大特点,应用场景一般在视频通话等方面

说了这么多,接下来我们就来看一下UDP在C#中的具体实现吧

       using (UdpClient udp = new UdpClient())
            {
                byte[] sendBytes = Encoding.UTF8.GetBytes("Hello UDP");
                udp.Send(sendBytes, sendBytes.Length, new IPEndPoint(IPAddress.Parse("127.0.0.1"),9999));
            }

UPD的发送消息。轮子都是现成的。所以就这么几行话就可以。

         IPEndPoint ipInfo = new IPEndPoint(IPAddress.Any, 9999);
            using (UdpClient udpRecieive = new UdpClient(ipInfo))
            {
                byte[] msg = udpRecieive.Receive(ref ipInfo);
                Console.WriteLine(Encoding.UTF8.GetString(msg,0,msg.Length));
            }

接受消息也很简单。到Receive那里就会自动接受。在这里我选择的都是AnyIP地址的。根据业务需求可以切换成你自己需要的Ip地址进行监听收发。

好了,UDP的收发就写到这里。

原文地址:https://www.cnblogs.com/SevenWang/p/14639948.html