Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >当使用UDP传输数据时,是否需要将消息长度作为消息的一部分?

当使用UDP传输数据时,是否需要将消息长度作为消息的一部分?
EN

Stack Overflow用户
提问于 2012-11-20 10:37:52
回答 1查看 157关注 0票数 0

我有一个客户端,他希望将通过有线传输的字节数减少到绝对最小。当创建一个udpClient类并调用接收方法时,将返回一个字节数组。目前,我正在使用receiveBytes.Length获取消息中的字节数。

但是,在多条消息传入的重载下,这是不够的,因此需要将数据包长度作为消息的前两个字节发送。

我是否可以依赖于一个完整的数据包或没有接收到的数据包,从而依赖于长度属性?

编辑

谢谢你的评论。

除了TCP之外,还使用UDP。当我们需要实现序列和保证时,使用TCP。UDP将用于具有任意顺序但不是关键的数据。是的,我知道这意味着增加OTT加密。我的问题是,我只能依靠完整的数据包到达。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-11-20 10:44:19

每个UDP数据包都是独立交付的,并且不保证任何其他数据包都会到达。

你如何(在收到一个)知道等待另一个,你能做什么,如果它从来没有出现?很长一段时间以来,你都会收到发送的信息,否则就什么也不会收到。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13479868

复制
相关文章
udp发送广播消息
import socket if __name__ == '__main__': # 创建udpsocket udp_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) # 设置socket选项, 开启发送广播消息的功能 # 1. SOL_SOCKET:当前socket # 2. SO_BROADCAST: 广播选项 # 3. True:开启发送广播消息功能 udp_socket.set
汪凡
2019/03/01
2.7K0
消息传输模型的思考
在P2P模型中,有几个关键术语:消息队列(Queue)、发送者(Sender)、接收者(Receiver)。每个消息都被发送到一个特定的队列,接收者从队列中获取消息。队列保留着消息,直到它们被消费或超时。
AWeiLoveAndroid
2019/07/23
1.1K0
鸿蒙之接收UDP消息
Internet 协议集支持一个无连接的传输协议,该协议称为用户数据报协议(UDP,User Datagram Protocol)。UDP 为应用程序提供了一种无需建立连接就可以发送封装的 IP 数据包的方法。 Internet 的传输层有两个主要协议,互为补充。无连接的是 UDP,它除了给应用程序发送数据包功能并允许它们在所需的层次上架构自己的协议之外,几乎没有做什么特别的事情。面向连接的是 TCP,该协议几乎做了所有的事情。 UDP协议与TCP协议一样用于处理数据包,在OSI模型中,两者都位于传输层,处于IP协议的上一层。UDP有不提供数据包分组、组装和不能对数据包进行排序的缺点,也就是说,当报文发送之后,是无法得知其是否安全完整到达的。UDP用来支持那些需要在计算机之间传输数据的网络应用。包括网络视频会议系统在内的众多的客户/服务器模式的网络应用都需要使用UDP协议。UDP协议从问世至今已经被使用了很多年,虽然其最初的光彩已经被一些类似协议所掩盖,但即使在今天UDP仍然不失为一项非常实用和可行的网络传输层协议。 方法 说明 Close 关闭 UDP 连接 Connect 建立与远程主机的连接 DropMulticastGroup 退出多路广播组 JoinMulticastGroup 将 UdpClient 添加到多路广播组 Receive 返回已由远程主机发送的 UDP 数据文报 Send 将 UDP 数据文报发送到远程主机
跋扈洋
2022/03/29
1.3K0
SYSLIB1013:不要将异常参数作为模板包含在日志记录消息中
日志记录方法的第一个异常参数在日志记录消息中作为模板引用。 不必要这样做,因为第一个异常将显式传递给日志记录基础结构。 不需要在日志记录消息中重复它。
呆呆
2022/01/06
2520
消息传输的设计方式(上)
企鹅号小编
2018/01/09
9550
消息传输的设计方式(上)
消息队列如何保证消息可靠性传输
随着互联网的发展,消息队列已经成为了系统设计中不可或缺的一部分。它可以实现系统之间的异步通信和解耦,提高整体系统的可靠性和性能。但是,由于网络的不可靠性和系统崩溃等原因,消息在传输过程中可能会出现丢失和重复等问题。为了解决这些问题,消息队列需要采用一系列机制来保证消息的可靠性传输。
青山师
2023/05/05
4540
SYSLIB1002:不要将日志级别参数作为模板包含在日志记录消息中
日志记录方法的第一个日志级别参数在日志记录消息中作为模板引用。 不必要这样做,因为第一个日志级别会显式传递给日志记录基础结构。 不需要在日志记录消息中重复它。
呆呆
2022/01/06
2620
Kafka作为消息系统的系统补充
Apache Kafka由Scala和Java编写,基于生产者和消费者模型作为开源的分布式发布订阅消息系统。它提供了类似于JMS的特性,但设计上又有很大区别,它不是JMS规范的实现,如Kafka允许多个消费者主动拉取数据,而在JMS中只有点对点模式消费者才会主动拉取数据。
大数据学习与分享
2020/08/10
5260
Kafka作为消息系统的系统补充
消息的可靠性传输,如何处理消息丢失问题?
若这是用MQ传递非常核心的消息,如计费系统,就是很重的业务,操作很耗时,设计上经常将计费做成异步化,就是用MQ。
JavaEdge
2022/11/30
1.1K0
消息的可靠性传输,如何处理消息丢失问题?
图解:消息传输的架构模式
本文介绍在 Redis、Apache Kafka、RabbitMQ、ZeroMQ 和 IBM MQ 等技术中使用的消息交换架构和路由方法的基本模式。另外介绍如何使用这些模式简化架构师和开发人员之间的互动。
架构师修行之路
2021/06/10
5360
图解:消息传输的架构模式
从概念上讲,一条消息是一个发送方与一个或多个接收方之间的一次信息交换。自从大型机问世以来,消息交换一直是计算机编程和架构设计的重要组成部分。
架构之家
2022/07/12
5910
图解:消息传输的架构模式
如何使用消息队列的事务消息
“发消息”过程,往往是为通知另外一个系统更新数据,MQ的“事务”,主要解决消息生产者和消息消费者的数据一致性问题。
JavaEdge
2021/02/22
2K0
如何使用消息队列的事务消息
实时消息传输协议(RTMP)详解
概述 概念:RTMP协议从属于应用层,被设计用来在适合的传输协议(如TCP)上复用和打包多媒体传输流(如音频、视频和互动内容)。RTMP提供了一套全双工的可靠的多路复用消息服务,类似于TCP协议[RFC0793],用来在一对结点之间并行传输带时间戳的音频流,视频流,数据流。通常情况下,不同类型的消息会被分配不同的优先级,当网络传输能力受限时,优先级用来控制消息在网络底层的排队顺序。 RTMP块流 实时消息传递协议块流(RTMP块流)。RTMP块流作为一款高级多媒体流协议提供了流的多路复用和打包服务。RTMP
xiangzhihong
2018/02/06
13K0
实时消息传输协议(RTMP)详解
消息队列面试解析 - 传输协议
传输协议就是应用程序之间对话的语言。设计传输协议,并没有太多规范和要求,只要是通信双方的应用程序都能正确处理这个协议,并且没有歧义即可。
JavaEdge
2021/02/22
5040
Spring认证指南:了解如何使用 Redis 作为消息代理
原标题:Spring认证中国教育管理中心-了解如何使用 Redis 作为消息代理(Spring中国教育管理中心)
IT胶囊
2022/02/07
9520
Spring认证指南:了解如何使用 Redis 作为消息代理
Redis中的Stream数据类型作为消息队列的尝试
Redis的List数据类型作为消息队列,已经比较合适了,但存在一些不足,比如只能独立消费,订阅发布又无法支持数据的持久化,相对前两者,Redis Stream作为消息队列的使用更为有优势。
Java_老男孩
2019/12/02
1.4K0
如何保证消息的可靠性传输?
这个是肯定的,用 MQ 有个基本原则,就是数据不能多一条,也不能少一条,不能多,就是前面说的重复消费和幂等性问题。不能少,就是说这数据别搞丢了。那这个问题你必须得考虑一下。
李红
2019/05/31
1.2K0
如何保证消息的可靠性传输?如何处理消息丢失的问题?
这个是肯定的,用 MQ 有个基本原则,就是数据不能多一条,也不能少一条,不能多,就是前面说的重复消费和幂等性问题。不能少,就是说这数据别搞丢了。那这个问题你必须得考虑一下。
MickyInvQ
2022/05/06
1K0
如何保证消息的可靠性传输?如何处理消息丢失的问题?
如何保证消息的可靠性传输(如何处理消息丢失的问题)
生产者将数据发送到rabbitmq的时候,可能数据就在半路给搞丢了,因为网络啥的问题,都有可能。
名字是乱打的
2022/05/13
7580
如何保证消息的可靠性传输(如何处理消息丢失的问题)
使用消息中间件时,如何保证消息仅仅被消费一次?
原文链接:https://www.toutiao.com/i6803224493616529927/
2020/04/08
5230
使用消息中间件时,如何保证消息仅仅被消费一次?

相似问题

当发送消息时套接字传输关闭

14

当UDP消息可以分段时,使用tcpdump捕获特定端口

12

在recvfrom()之前获取udp格式的消息长度

10

接收到的UDP消息长度不正确

22

udp数据报消息的划分

12
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文