为什么要发送没有负载的 UDP 数据包?

2023-12-20

看来 UDP 数据包可以在没有负载的情况下发送。

我能想到的唯一不需要负载的就是 NAT 打洞。 这还能用来做什么?

这与我之前的问题有关在 Linux 下,recv 能否在 UDP 上返回 0? https://stackoverflow.com/questions/12505892/under-linux-can-recv-ever-return-0-on-udp

我想更重要的是,如果它被指定为某个标准的一部分,那么它就被认为在某个地方有用,对吗?


任何事物! UDP 数据包不是空的——它带有发送者的身份。因此,这样的数据包可以用作一种原始信号:可能是你好、再见或保持活动状态。

具有像这样的接口sendmsg,可以使用空数据包来发送辅助数据,例如cmsg结构(可用于在 Linux 上的两个进程之间传输文件描述符等)。

编辑:另一种用途:NAT 遍历算法,例如STUN http://en.wikipedia.org/wiki/STUN或 UDP 打洞。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为什么要发送没有负载的 UDP 数据包? 的相关文章

  • Android 上的 UDP 视频流

    我有一个 Android 项目 需要构建一个客户端应用程序来接收 UDP 或 RTP 单播视频流并播放它们 不幸的是 我似乎无法使其正常工作 并且已经广泛搜索了解决方案 我已经在 Xoom Android 3 2 和 Nexus S And
  • 数据报总是被完整接收吗?

    大多数数据报接收函数 例如c的recv或read java的DatagramPacket类或python的SocketServer 都包含找出接收数据量的可能性 c int amount recv sock buf n MSG WAITAL
  • 如果客户端在服务器之后启动,则 GStreamer v1.0 UDP 多播流无法正确解码

    我正在尝试使用 GStreamer 进行 UDP 多播屏幕流传输 我的投屏服务器应该在 Windows 上运行 and my 客户端应在 Linux 上运行 如果我在服务器之前启动客户端 一切都很好 问题是当我启动客户端并且服务器已经启动时
  • 接收来自 N 个客户端的响应,以回复通过 UDP 的广播请求

    我正在为特定类型的网络多媒体设备实现一种 IP 查找器 我想找出 LAN 中该类型的所有活动设备及其 IP 地址和其他详细信息 设备有自己的设备发现方式 其工作原理如下 客户端通过 UDP 通过 LAN 发送广播请求 目的端口号是固定的 作
  • C# 广播是UDP消息,监听多个回复

    我正在尝试编写一些执行 UDP 广播的代码 然后侦听来自远程服务器的答复 说明它们存在 它用于识别子网上运行服务器应用程序的计算机 因此基本上会发出 谁在那儿 并听取所有答复 我在 Java 中有这个 工作完美 它将 DatagramPac
  • netty 4.x.x 中的 UDP 广播

    我们需要使用 Netty 4 0 0 二进制文件通过 UDP 通道广播对象 Pojo 在 Netty 4 0 0 中 它允许我们仅使用 DatagramPacket 类来发送 UDP 数据包 此类仅接受 ByteBuf 作为参数 还有其他方
  • 自 2012 年以来,WinSock 注册 IO 性能是否有所下降?

    我最近使用 MS 为该 API 提供的稍微可接受的文档编写了基于 WinSock Registered IO RIO 的 UDP 接收 最终的性能非常令人失望 单套接字性能有些稳定 约为每秒 180k 数据包 使用多个 RSS 队列 即多个
  • 在 macOS 10.12 上绑定到套接字时出现 NSPOSIXErrorDomain

    我正在玩CocoaAsyncSocket https github com robbiehanson CocoaAsyncSocket在 Swift 中绑定到 UDP 套接字并通过本地网络接收消息 我正在初始化一个套接字 并尝试绑定到一个端
  • 您可以bind()和connect() UDP连接的两端吗

    我正在编写一个点对点消息队列系统 它必须能够通过 UDP 运行 我可以任意选择一侧或另一侧作为 服务器 但这似乎不太正确 因为两端都从另一端发送和接收相同类型的数据 是否可以绑定 和连接 两端 以便它们只能彼此发送 接收 这似乎是一种非常对
  • 视频流上的 TCP 与 UDP

    我刚从网络编程考试回来 他们问我们的问题之一是 如果您要传输视频 您会使用 TCP 还是 UDP 请解释一下存储视频和实时视频流 对于这个问题 他们只是希望得到一个简短的答案 TCP 用于存储视频 UDP 用于实时视频 但我在回家的路上想到
  • P2P网络游戏/应用程序:类似“战网”匹配服务器的不错选择

    我正在制作一个网络游戏 1v1 游戏中是 p2p 不需要游戏服务器 然而 为了让玩家能够 找到彼此 而不需要在另一种媒介中协调并输入IP地址 类似于网络游戏的现代时代 我需要有一个协调 匹配服务器 我无法使用常规网络托管 因为 客户端将使用
  • 我应该害怕使用 UDP 进行客户端/服务器广播通话吗?

    我在过去的两天里阅读了每一篇StackOverflow问题和答案 以及googling当然 关于印地TCP and UDP协议 以便决定在我的用户应用程序和 Windows 服务之间的通信方法中应该使用哪一种 从我目前所看到的来看 UDP是
  • 尝试接收 UDP 多播时出现空指针异常

    在尝试了几次让简单的 UDP 多播接收器工作后 我感到很困惑 在我自己的代码无法按预期工作后 我尝试了 vertx 文档中发布的确切示例 DatagramSocket socket vertx createDatagramSocket ne
  • 如何读取 UDP 连接直至超时?

    我需要读取 UDP 流量 直到超时 我可以通过在 UDPConn 上调用 SetDeadline 并循环直到出现 I O 超时错误来做到这一点 但这看起来很黑客 基于错误条件的流量控制 下面的代码片段看起来更正确 但并没有终止 在生产中 这
  • 错误号:11,资源暂时不可用

    我正在使用 c 套接字来实现可靠的 UDP 协议 我正在使用以下代码在等待确认的套接字上设置超时 我不确定为什么会收到 errno 11 资源暂时不可用 set timer for recv socket struct timeval tv
  • 如何从 DatagramPacket 中检索字符串[重复]

    这个问题在这里已经有答案了 下面的代码打印 B 40545a60 B 40545a60abc exp 但我想打印abc 以便我可以从接收系统检索正确的消息 public class Operation InetAddress ip Data
  • boost 是否有可移植的方式来使用 ntohl/htonl/ntohs/htons 类型函数?

    我正在使用 UDP 特别是 boost asio ip udp socket 套接字 如果有帮助的话 头文件是什么 我需要哪些标头 类来处理 UDP 提升下的网络字节排序 刚刚发现就足够了 include
  • 从 Docker 容器发送多播数据包(到多播组)

    我有一个通过 UDP 多播发送消息的应用程序 我一直试图将其放在 docker 下 我在尝试从 Docker 容器发送多播数据包时遇到了很大的阻力 我已经能够通过 net host运行 docker 容器的选项 然而 我想坚持使用桥接配置
  • 使用 Twisted Python 的 UDP 客户端和服务器

    我想创建一个服务器和客户端 使用 Twisted 从网络发送和接收 UDP 数据包 我已经用 Python 中的套接字编写了此代码 但想利用 Twisted 的回调和线程功能 然而 我需要 Twisted 设计方面的帮助 我想接收多种类型的
  • Netty UDP 服务器中的线程未同时执行

    我正在分析的代码使用 Netty NioDatagramChannelFactory 创建 UDP 服务器 它创建一个线程池 ExecutorService threadPool Executors newCachedThreadPool

随机推荐

  • Cypress - 检查文件是否已下载

    我在尝试检查文件是否已下载时遇到了一些问题 单击按钮生成 PDF 文件并开始下载 我需要检查它是否有效 赛普拉斯能做到吗 赛普拉斯 插件 index js const path require path const fs require f
  • 为什么我不能在抽象 C# 类上创建抽象构造函数?

    我正在创建一个抽象类 我希望我的每个派生类都被迫实现构造函数的特定签名 因此 如果我想强迫他们实现一种方法 我做了我会做的事情 我做了一个抽象的方法 public abstract class A abstract A int a int
  • Typescript 中带有 Observable 的 XMLHttpRequest

    当我尝试管理上传文件的 XMLHttpRequest 调用的结果时 我遇到了 tslint 问题 这是我目前在互联网上找到的方法 Files upload request makeFileRequest url string files A
  • 如何使用 CURLOPT_HEADERFUNCTION 读取单个响应标头字段?

    我正在实现一个 C 程序 它需要从读取远程文件的大小Content Length标题 当Content Length在响应标头中发送 我查看了 libcurl 的文档 到目前为止我能想到的最好的方法是回调函数CURLOPT HEADERFU
  • 在 Access VBA 中实施正则表达式以提高密码复杂性

    我目前正在开发一个需要密码验证的项目 因为最终用户可以更改其登录密码 但没有验证来确保给定的密码符合规定 这有点棘手 因为我对使用 VBA 和正则表达式相当陌生 而且我找不到我正在寻找的答案 该项目有一个 Access 2010 前端 虽然
  • 如何在 MySQL 中强制复合唯一性?

    我遇到了一种情况 我想确保表的复合元素是唯一的 例如 Table id char 36 primary key fieldA varChar 12 not null fieldB varChar 36 not null 我不希望 field
  • CentOS安装mod_dav_svn

    我正在尝试在 centos 5 VPS 上安装 subversion 我设法安装了 subversion 但是当我尝试这样做时yum install mod dav svn我收到此错误 错误 缺少依赖项 httpd mmn 包裹需要2005
  • 如何从 zlib 确定 gzip 数据的压缩大小?

    我正在使用 zlib 执行 gzip 压缩 zlib 将数据压缩后直接写入打开的 TCP 套接字 socket fd is a file descriptor for an open TCP socket gzFile gzf gzdope
  • Rust 中精确的内存布局控制?

    据我所知 Rust 编译器可以对结构的每个字段进行打包 重新排序和添加填充 如果需要的话 如何指定精确的内存布局 在 C 中 我有StructLayout属性 并且在 C C 中 我可以使用各种编译器扩展 我可以通过检查预期值位置的字节偏移
  • Android NDK 包括使用 Gradle 和 CMake 的第 3 方预构建共享库

    我正在努力将预构建的共享库包含在我的 android 项目中 有问题的库是 libusb 我的 android 项目的 NDK 部分需要它 一切都编译和链接正常 即项目正在成功构建 但是在我的设备上安装 apk 时 应用程序崩溃了 来自监视
  • 如果端口已使用,spring-boot 自动更改端口

    我正在使用 Windows 命令来运行带有 embedded tomcat 的 spring boot 应用程序 此外 我需要使用 CommandlineRunner 运行许多控制台应用程序 我正面临端口使用问题 APPLICATION F
  • FlowType:类型的继承(类型A是类型B的子集...)

    自发布以来流动 42 https github com facebook flow releases tag v0 42 0 你可以 使用对象类型传播 type TypeB TypeA 我想这确实是关于 FlowType 的初学者类型的问题
  • 在没有 XML 的情况下配置 JPA/Hibernate/PostgreSQL

    我又回到了 Java 世界 并尝试使用 JPA Hibernate 和 PostgreSQL 配置一个新的 Spring Web 应用程序 我发现了很多带有各种 XML 配置文件的旧示例 我想知道是否有一种首选的新方法可以在不依赖 XML
  • 如何使用js自动下载PDF?

    我的场景是 PDF 文件自动下载 然后用户填写它 当单击 PDF 中的提交按钮时 它会连接到 java servlet 并将其保存在数据库中 用户点击按钮 JavaScript 代码自动运行并下载 PDF 文件 自动使用 JavaScrip
  • 覆盖 Swagger 排序

    我想按相反的字母顺序组织我的 swagger api 但它默认为按字母顺序 有没有一种简单的方法可以做到这一点 具体使用 Swashbuckle Core 5 2 1 您可以为这两个操作的 UI 创建一个排序器 operationsSort
  • ASP.NET Web API 操作方法参数的依赖注入

    我正在使用 C 开发一个 ASP NET Web API 项目 用于移动应用程序的 JSON 接口 我的想法是为所有请求创建接口 然后仅在 Web API 代码中使用这些接口 我最终得到了这样的结果 public interface IAp
  • 如何允许在 Delphi 中拖动特定控件的文件

    我想在有人将文件放到特定控件 例如 TMemo 时立即接受文件 我从这个例子开始 http delphi about com od windowsshellapi a accept filedrop htm http delphi abou
  • 在C#中添加记录时如何处理数据表中的唯一约束异常

    我已经像这样向数据表添加了唯一约束 DataTable dtemp private void TempTable dtemp new DataTable Temp dtemp Columns Add new DataColumn Table
  • 如何在 Python 中验证 RSA SHA1 签名?

    我有一个字符串 一个签名和一个公钥 我想验证字符串上的签名 关键看起来像这样 BEGIN PUBLIC KEY MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDfG4IuFO2h LdDNmonwGNw5srW
  • 为什么要发送没有负载的 UDP 数据包?

    看来 UDP 数据包可以在没有负载的情况下发送 我能想到的唯一不需要负载的就是 NAT 打洞 这还能用来做什么 这与我之前的问题有关在 Linux 下 recv 能否在 UDP 上返回 0 https stackoverflow com q