0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

UDP不属于面向连接的通信

机器人及PLC自动化应用 来源:机器人及PLC自动化应用 作者:机器人及PLC自动化 2022-04-02 10:06 次阅读

UDP不属于面向连接的通信,在选择协议时,选择UDP必须要谨慎。在网络质量较差情况下,UDP协议数据包丢失会比较严重。但是由于UDP的特性:它不属于连接型协议,具有资源消耗小,处理速度快等优点,所以通常音视频和普通数据在传送时使用UDP较多,因为它们即使偶尔丢失一两个数据包,也不会对接收结果产生太大影响。

通过UDP进行信息收发,并没有严格的客户端和服务端之分,它不同于TCP,TCP必须建立可靠连接之后才可以通信,而UDP随时都可以给指定的ip和端口所对应进程发送消息。

UDP发送消息时需要绑定自己IP 和 端口号,接收消息的时候没有特殊限制,只要有人给自己发送,自己在线,就可以接收。

总之,使用UDP协议进行信息的传输之前不需要建立连接。换句话说就是客户端向服务器发送信息,客户端只需要给出服务器的ip地址和端口号,然后将信息封装到一个待发送的报文中并且发送出去。至于服务器端是否存在,或者能否收到该报文,客户端根本不用管。

Server服务端实现代码

using System;

using System.Net;

using System.Net.Sockets;

using System.Text;

using System.Threading;

namespace UdpServer

{

class Program

{

static Socket server;

static void Main(string[] args)

{

server = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp);

server.Bind(new IPEndPoint(IPAddress.Parse("192.168.1.101"), 8001)); //绑定端口号和IP

Thread threadReciveMsg = new Thread(ReciveMsg); //开启接收消息线程

threadReciveMsg.Start();

Thread threadSendMsg = new Thread(sendMsg); //开启发送消息线程

threadSendMsg.Start();

Console.WriteLine("服务端已开启");

}

///

/// 向指定IP的主机端口发送数据报

///

static void sendMsg()

{

EndPoint point = new IPEndPoint(IPAddress.Parse("192.168.1.101"), 8000);

while (true)

{

string msg = Console.ReadLine();

server.SendTo(Encoding.UTF8.GetBytes(msg), point);

}

}

///

/// 接收发送给本机ip对应端口号的数据报

///

static void ReciveMsg()

{

while (true)

{

EndPoint point = new IPEndPoint(IPAddress.Any, 0);//用来保存发送方的ip和端口号

byte[] buffer = new byte[1024];

int length = server.ReceiveFrom(buffer, ref point);//接收数据报

string message = Encoding.UTF8.GetString(buffer, 0, length);

Console.WriteLine(DateTime.Now.ToString() + " Msg From: " + point.ToString() + ":" + message);

}

}

}

}

审核编辑 :李倩

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 通信
    +关注

    关注

    18

    文章

    5969

    浏览量

    135830
  • UDP
    UDP
    +关注

    关注

    0

    文章

    322

    浏览量

    33870
  • 代码
    +关注

    关注

    30

    文章

    4742

    浏览量

    68330

原文标题:C# UDP通讯

文章出处:【微信号:gh_a8b121171b08,微信公众号:机器人及PLC自动化应用】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    tcp和udp的区别和联系

    挥着重要作用。然而,它们在设计、功能和性能方面存在显著差异。 二、TCP与UDP的定义 传输控制协议(TCP) TCP是一种面向连接的、可靠的、基于字节流的传输层通信协议。它由IETF
    的头像 发表于 08-16 11:06 522次阅读

    请问esp-idf&vscode结构体索引不到对应的成员如何解决?

    兄弟们,我用VSCode 初始化结构体时,索引不到对应的成员,并且索引会出现不属于结构体内的东西,有解决办法吗,球球了
    发表于 06-14 06:42

    压缩空气储能属于电化学储能技术吗

    压缩空气储能并不属于电化学储能技术。电化学储能通常指的是通过电池或其他电化学设备的化学反应来存储和释放能量的技术,例如锂离子电池。
    的头像 发表于 04-26 15:21 540次阅读

    压缩空气储能属于电化学储能技术吗

    压缩空气储能(CAES)不属于电化学储能技术。压缩空气储能是一种物理储能方式,它通过压缩空气并将其存储在压力容器或地下洞穴中来储存能量,在需要时释放高压空气以驱动透平机发电,从而实现能量的存储和释放。
    的头像 发表于 04-25 15:32 702次阅读

    超级电容器和飞轮电池都属于一次电池吗

    超级电容器(也称为超级电容或电化学电容器)和飞轮电池都是储能技术,但它们不属于一次电池。
    的头像 发表于 04-24 17:06 950次阅读

    udp是什么协议?udp协议介绍

    UDP(User Datagram Protocol,用户数据报协议)是一种无连接的传输层协议,不保证数据传输的可靠性,只负责把数据包发送给目标地址。它提供了简单、高效的数据传输方式,适合对传输质量
    的头像 发表于 04-19 15:57 1249次阅读

    鸿蒙原生应用开发-网络管理Socket连接(一)

    。 TCP:传输控制协议(Transmission Control Protocol)。是一种面向连接的、可靠的、基于字节流的传输层通信协议。 UDP:用户数据报协议(User Dat
    发表于 04-01 14:20

    通信必备知识!TCP与UDP协议介绍及使用

    TCP与UDP是两个最常用的通讯协议。TCP是面向连接的协议,需要在收发数据前与对方建立可靠的连接,建立连接的过程为3次握手,断开
    的头像 发表于 03-15 08:19 1729次阅读
    <b class='flag-5'>通信</b>必备知识!TCP与<b class='flag-5'>UDP</b>协议介绍及使用

    HarmonyOS 网络管理开发 —Socket 连接

    的抽象。 ​ ● TCP:传输控制协议 (Transmission Control Protocol)。是一种面向连接的、可靠的、基于字节流的传输层通信协议。 ​ ● UDP:用户数据
    的头像 发表于 02-18 09:20 876次阅读

    能不能说一说TCP和UDP的区别?

    UDP的区别,以帮助读者深入理解这两种协议的不同之处。 1. 连接导向 vs 无连接:TCP是一种连接导向的协议,通信双方需要在建立
    的头像 发表于 02-04 11:03 486次阅读

    浅谈用户数据报协议UDP数据报传输技术

    UDP在IP数据报的头部仅仅加入了复用和数据校验(字段)。由于缺乏可靠性且属于连接导向协议,UDP应用一般允许一定量的丢包、出错和复制。
    发表于 02-03 16:32 656次阅读
    浅谈用户数据报协议<b class='flag-5'>UDP</b>数据报传输技术

    udp是什么意思 简述TCP与UDP的区别和联系

    中的两个基本协议。然而,TCP和UDP之间存在一些重要的区别和联系。 首先,TCP是一种面向连接的协议,而UDP是无连接的。这意味着通过TC
    的头像 发表于 02-02 16:33 1221次阅读

    TCP和UDP协议有什么区别?如何通过网关实现TCP协议通信

    TCP协议是一种面向连接的、可靠的、基于字节流的传输层通信协议,能够保证数据从发送方到达接收方,是物联网领域常见的通信协议之一。 TCP是面向
    的头像 发表于 01-24 11:07 567次阅读
    TCP和<b class='flag-5'>UDP</b>协议有什么区别?如何通过网关实现TCP协议<b class='flag-5'>通信</b>?

    UDP与TCP的主要区别 UDP能否像TCP一样实现可靠传输?

    据包的传输不进行确认和重传,而TCP是一种面向连接的协议,通过确认和重传来实现可靠的数据传输。 首先,UDP连接的特点使得它在传输时的开销较小。U
    的头像 发表于 01-22 16:10 754次阅读

    不属于python的内置函数

    Python是一种高级编程语言,它提供了许多内置函数,可以帮助开发人员更轻松地处理各种任务。但是,在Python中并非所有的函数都是内置函数。以下是一些不属于Python内置函数的常用函数
    的头像 发表于 11-29 14:27 1383次阅读