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

    文章

    5706

    浏览量

    134380
  • UDP
    UDP
    +关注

    关注

    0

    文章

    311

    浏览量

    33615
  • 代码
    +关注

    关注

    30

    文章

    4555

    浏览量

    66750

原文标题:C# UDP通讯

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

收藏 人收藏

    评论

    相关推荐

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

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

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

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

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

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

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

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

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

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

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

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

    不属于python的内置函数

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

    TCP与UDP的基本区别

    TCP与UDP基本区别 基于连接与无连接 TCP要求系统资源较多,UDP较少; UDP程序结构较简单 流模式(TCP)与数据报模式(
    的头像 发表于 11-13 15:27 543次阅读
    TCP与<b class='flag-5'>UDP</b>的基本区别

    基于UDP的C/S模型代码实现

    的重要通信手段。 相较于TCP而言,UDP通信的形式更像是发短信。不需要在数据传输之前建立、维护连接。只专心获取数据就好。省去了三次握手的过程,通信
    的头像 发表于 11-10 10:41 155次阅读
    基于<b class='flag-5'>UDP</b>的C/S模型代码实现

    TCP和UDP的区别

    1.TCP和UDP的区别 TCP是面向连接的,UDP面向连接的; TCP只能一对一
    的头像 发表于 11-09 09:35 630次阅读
    TCP和<b class='flag-5'>UDP</b>的区别

    请问乐鑫的ESP32是属于RISC-V 架构吗?

    各位大神,最近突然想起这个有点古怪的问题,ESP32属不属于RISC-V 的单片机呢?
    发表于 06-21 20:40

    基于Socket的UDP和TCP编程解析 2

    TCP(传输控制协议)和UDP(用户数据报协议是网络体系结TCP/IP模型中传输层一层中的两个不同的通信协议。 TCP:传输控制协议,一种面向连接的协议,给用户进程提供可靠的全双
    的头像 发表于 05-18 17:22 461次阅读
    基于Socket的<b class='flag-5'>UDP</b>和TCP编程解析 2

    基于Socket的UDP和TCP编程解析 1

    TCP(传输控制协议)和UDP(用户数据报协议是网络体系结TCP/IP模型中传输层一层中的两个不同的通信协议。 TCP:传输控制协议,一种面向连接的协议,给用户进程提供可靠的全双
    的头像 发表于 05-18 17:22 729次阅读
    基于Socket的<b class='flag-5'>UDP</b>和TCP编程解析 1

    什么情况下需要UDP Ping?Linux如何进行UDP Ping呢?

    UDP是一种面向连接的传输层协议,全称是User Datagram Protocol(用户数据报协议)。
    的头像 发表于 05-15 11:38 3121次阅读

    TCP通信UDP通信串口通信C#上位机

    一、TCP通信上位机 1:作为TCP client,连接server指定端口获取数据2:数据解析显示,曲线显示,数据存储,历史数据显示,远程控制 二、UDP通信上位机 1:作为
    发表于 05-08 10:39 2次下载
    TCP<b class='flag-5'>通信</b><b class='flag-5'>UDP</b><b class='flag-5'>通信</b>串口<b class='flag-5'>通信</b>C#上位机