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

    文章

    6319

    浏览量

    139582
  • UDP
    UDP
    +关注

    关注

    0

    文章

    331

    浏览量

    35220
  • 代码
    +关注

    关注

    30

    文章

    4942

    浏览量

    73160

原文标题:C# UDP通讯

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

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    TCP和UDP的区别

    相比,TCP 有三大核心特性: 1、面向连接。所谓的连接,指的是客户端和服务器的连接,在双方互相通信之前,TCP 需要三次握手建立
    发表于 12-09 07:24

    不同类型的暂态事件(如电压暂降、电压暂升、谐波等)在捕捉方法上有何异同?

    要分析不同类型暂态事件(需先明确:电压暂降、电压暂升、脉冲暂态属于 “短时突发暂态”,而谐波(稳态)不属于暂态事件,仅 “暂态谐波”(如负载突变时的短时谐波)属于暂态范畴)的捕捉方法异同,需先立足
    的头像 发表于 09-26 09:57 457次阅读
    不同类型的暂态事件(如电压暂降、电压暂升、谐波等)在捕捉方法上有何异同?

    什么是组态屏

    —— 像后续要讲的指令屏和组态屏,只要采用串口连接方式,就能归为串口屏范畴,当然它们也可选择其他接口,比如走以太网的类型就不属于串口屏;指令屏的工作方式则有明确的规则,需要把要显示的内容加上头部、尾部信息以及
    的头像 发表于 09-04 11:34 442次阅读

    第五章 W55MH32 UDP示例

    本文介绍了在 W55MH32 芯片上实现 UDP 通信及数据回环测试的方法。阐述了 UDP 协议的概念、特点、应用场景、报文传输流程和报文结构,展示了实现过程,借助网络调试工具完成测试。
    的头像 发表于 07-24 09:13 661次阅读
    第五章 W55MH32 <b class='flag-5'>UDP</b>示例

    当梦想站上C位:一群“鸿蒙合伙人”点燃HDC,定义属于年轻开发者的时代!

    破土而出,向阳而生! 他们不属于大厂体系,也不依赖旧有路径,但在鸿蒙生态中,他们的选择被尊重,他们的创新被放大。平台不设门槛,也不定义标准答案,鸿蒙只为让技术回归它该有的模样:回应生活、连接人群、创造改变。 打破舞台门槛
    的头像 发表于 06-23 10:10 397次阅读
    当梦想站上C位:一群“鸿蒙合伙人”点燃HDC,定义<b class='flag-5'>属于</b>年轻开发者的时代!

    边缘AI广泛应用推动并行计算崛起及创新GPU渗透率快速提升

    是时候重新教育整个生态了。边缘AI的未来不属于那些高度优化但功能狭窄的芯片,而是属于可编程的、可适配的并行计算平台,它们能与智能软件共同成长并扩展。
    的头像 发表于 06-11 14:57 492次阅读

    《DNESP32S3使用指南-IDF版_V1.6》第五十二章 UDP实验

    第五十二章 UDP实验 对于lwIP的Socket的使用方式,它与文件操作非常相似。在文件操作中,我们首先打开文件,然后进行读/写操作,最后关闭文件。在TCP/IP网络通信中,也存在着相同的操作流程
    发表于 02-28 09:59

    RL-TCPNet UDP通信,板子能接收网络调试助手数据,不能发送数据到网络调试助手

    RL-TCPNet UDP通信,板子能接收网络调试助手数据,不能发送数据到网络调试助手,程序运行到udp_get_buf(maxlen)函数,系统报错进入sys_error (ERROR_CODE code)函数,报警命令ERR
    发表于 02-20 10:53

    RL-TCPNet UDP通信,板子能接收网络调试助手数据,不能发送数据到网络调试助手!!!!

    RL-TCPNet UDP通信,板子能接收网络调试助手数据,不能发送数据到网络调试助手,程序运行到udp_get_buf(maxlen)函数,系统报错进入sys_error (ERROR_CODE code)函数,报警命令ERR
    发表于 02-20 10:50

    开源直接用!UDP-UART数据透传来了

    UDP连接将数据发送到远程设备,然后将这些数据通过UART接口发送到本地设备。 这种通信方式在需要将远程设备的数据传输到本地设备时非常有用,例如在远程监控和远程控制系统中。 ▼ UDP
    的头像 发表于 02-05 17:14 571次阅读
    开源直接用!<b class='flag-5'>UDP</b>-UART数据透传来了

    TCP协议与UDP协议的区别

    1. 连接性 TCP(传输控制协议) : 面向连接 :在数据传输之前,TCP需要建立一个连接,这通过三次握手过程完成。 可靠性 :一旦连接
    的头像 发表于 01-22 09:44 1764次阅读

    Web端TCP/UDP测试工具!小白必学~

    : 02. 终端在代码里面填上对应的IP:112.125.89.8,TCP端口填上46095,然后打开Socket; 03. TCP连接建立后,TCP/UDP web测试工具会在界面上显示连上来的
    的头像 发表于 01-08 18:17 1993次阅读
    Web端TCP/<b class='flag-5'>UDP</b>测试工具!小白必学~

    TCP三次握手与UDP的区别

    连接管理、可靠性、效率等方面有着显著的区别。 1. TCP三次握手 TCP是一种面向连接的、可靠的、基于字节流的传输层通信协议。在数据传输之前,TCP需要建立一个
    的头像 发表于 01-03 17:35 1221次阅读

    Android IC读卡器UDP通信项目

    1.创建UDP套接字: //打开UDP套接字 public void UDPServerActive(boolean isNeedActive){ if(isNeedActive) { try
    发表于 12-30 14:27

    一文了解Android UDP通信

    一、了解UDP通信协议 UDP(User Datagram Protocol,用户数据报协议)是一种无连接、不可靠的传输层协议。它提供简单的数据传输服务,无需在发送方和接收方之间建立
    发表于 12-30 10:56