连接“无连接” boost::asio::ip::udp::socket

2023-11-27

我最近通过浏览网络了解了 UDP 套接字,所有解释它的页面都提到 UDP 套接字是“无连接”。如果我理解正确的话,这意味着两个套接字之间没有“连接”,而是将数据报包发送到指定的端点,而不知道另一端是否正在侦听。

然后我开始阅读 boost::asio::ip::udp::socketdocs并发现它提到了 API,例如:

  • async_connect:启动异步connect.
  • async_receive:在 a 上启动异步接收连接的套接字.
  • async_send:在 a 上启动异步发送连接的套接字.

对于新手来说,这有点令人困惑。我可以找到 3 个可能导致我困惑的原因(按照可能性的顺序:))

  1. 我缺少一些东西
  2. asio 实现正在幕后做一些事情来虚拟化连接。
  3. 文档有误

当您打开页面时,文档中还有一个小故障basic_datagram_socket::async_connect那里的例子正在实例化TCP套接字(而不是UDP ones).

有人请启发我吗?


Single UNIX 规范对什么有更好的解释connect对于无连接套接字:

如果发起套接字不是连接模式,则 connect() 设置套接字的对等地址,但不会建立连接。对于 SOCK_DGRAM 套接字,对等地址标识在后续 send() 调用中所有数据报发送的位置,并限制后续 receive() 调用的远程发送方。

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

连接“无连接” boost::asio::ip::udp::socket 的相关文章

  • 本地主机:8080 是什么意思? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 有什么区别本地主机 网络 vs 本地主机 8080 web TCP IP 连接始终与 IP 地址建立 您可以将 IP 地址视为某台计算机的
  • 使用 Flash 在本地托管游戏?

    我只是找不到合适的谷歌搜索词 是否可以使用 Flash 或 Flash 兼容服务 来允许游戏中的玩家通过 Web 浏览器托管自己的游戏 使用自己的带宽 在某种程度上 从他们的计算机运行他们自己的游戏服务器 对于 Flash 浏览器内游戏 但
  • 使用Java查找无线网络的SSID

    我们正在做一个用 Java 编码的项目 为 JRE 1 6 编译 需要一些帮助 一个有点但明显复杂的功能 我们希望在连接特定无线网络时执行特定操作 例如当连接的 SSID myNetworkAtHome 或类似名称时 在浏览了这个网站 谷歌
  • 为什么 UDP 服务器中只有一个套接字?

    我正在准备考试 发现了这个问题 典型的 UDP 服务器可以使用单个套接字来实现 解释一下为什么 对于 TCP 驱动的服务器 我发现创建了两个套接字 一个用于所有客户端访问服务器 另一个用于每个客户端的特定 套接字 用于服务器和客户端之间的进
  • 调试断言失败。表达式(流!=NULL)

    我收到以下错误 调试断言失败 表达式 流 NULL 文件 f dd vctools crty bld self x86 crt src fwrite c 创建 4 个线程时 CPU 使用率 100 该代码最初运行良好一段时间 然后给出此错误
  • 使用 Boost:Asio 的游戏服务器如何异步工作?

    我正在尝试创建一个游戏服务器 目前我正在使用线程来制作它 每个对象 玩家 怪物 都有自己的带有 while 1 循环的线程 在其中执行特定的功能 服务器基本上是这样工作的 main some initialization while 1 r
  • Boost async_write问题

    我将展示一些代码 void wh const boost system error code ec std size t bytes transferred std cout lt lt test int main int argc cha
  • 如何使用 xterm.js 创建基于 Web 的终端以 ssh 进入本地网络上的系统

    我偶然发现了这个很棒的图书馆xterm js https xtermjs org 这也是 Visual Studio Code 终端的基础 我有一个非常普遍的问题 我想通过基于网络的终端 不在网络中 可能位于 aws 服务器上 访问本地网络
  • 如果其中一台机器死机,TCP 连接如何终止?

    如果两个主机 A 和 B 之间建立了 TCP 连接 假设主机 A 已向主机 B 发送了 5 个八位字节 然后主机 B 崩溃了 由于未知原因 主机 A 将等待确认 但如果没有收到确认 将重新发送八位字节并减小发送者窗口大小 这将重复几次 直到
  • 即使 Android M 上的移动数据已打开(有连接),也可以通过 WiFi(无连接)发送请求

    我必须在没有互联网连接的情况下将 UDP 数据包发送到 WiFi 模块 配有自己的 AP 但是当我将手机连接到 AP 时 Android 会在移动数据接口上重定向我的数据包 因为它有互联网连接 我使用下面的代码来完成我的工作 但它似乎不适用
  • Node.js 可读流_read用法

    我了解如何在 Node 的 new 中使用可写流Streams2库 但我不明白如何使用可读流 举个例子 一个流包装器围绕dgram module var dgram require dgram var thumbs twiddle func
  • SQL Server“未找到网络路径”在不同环境中随机且不频繁地发生

    类似 如果不是同一个问题 随机遇到网络路径未找到异常 https stackoverflow com questions 38696448 network path not found exception encountered rando
  • 使用 boost::asio::async_read 实现超时,无需在 io_service 上调用运行

    我正在尝试从超时的输入源 在本例中为标准输入 中读取数据 由于现有应用程序的设计必须适合 因此无法在我的 io service 上调用 run 到目前为止 这是我的尝试 include
  • 当连接断开时,boost::asio::async_write 中的 WriteHandler 无法正常工作(防火墙/手动断开网络)

    我一直在尝试使用 boost asio 编写客户端 服务器应用程序 总的来说 该应用程序工作得很好 但是当连接 客户端 服务器 被防火墙或手动禁用新网络卡删除 这是代码片段 void write const CommunicatorMess
  • 更改 TFS 构建代理的身份

    我们有一个运行集成测试的 TFS 构建代理 其中一些测试会调用 Internet 上的 Web 服务 我们的网络使用代理与互联网通信 由于构建代理在网络服务上的身份下运行 并且网络服务的设置未配置为使用代理 因此测试失败 我该如何执行以下操
  • 尝试接收 UDP 多播时出现空指针异常

    在尝试了几次让简单的 UDP 多播接收器工作后 我感到很困惑 在我自己的代码无法按预期工作后 我尝试了 vertx 文档中发布的确切示例 DatagramSocket socket vertx createDatagramSocket ne
  • Android 防火墙与 VpnService

    我正在尝试使用 BS 项目的 VpnService 为 Android 实现一个简单的防火墙 我选择 VpnService 因为它将在非 root 设备上运行 它将记录连接并让您过滤连接 基于IP 有一个应用程序可以做到这一点 因此这是可能
  • 为什么 Kademlia 使用 UDP?

    为什么Kademlia 分布式哈希表 http en wikipedia org wiki Kademlia使用 UDP 作为其网络传输协议 即使它不可靠 主要原因是您快速查询了许多以前从未建立过联系并且可能在查找过程中永远不会再看到的节点
  • 错误号:11,资源暂时不可用

    我正在使用 c 套接字来实现可靠的 UDP 协议 我正在使用以下代码在等待确认的套接字上设置超时 我不确定为什么会收到 errno 11 资源暂时不可用 set timer for recv socket struct timeval tv
  • 使用 kryo 注册课程的策略

    我最近发现了 kryonet 库 它非常棒并且非常适合我的需求 然而 我遇到的一个问题是制定一种好的策略来注册所有可以转移的类 我知道我可以在每个对象中编写一个静态方法 该方法将返回它使用的所有类的列表 但我真的不想这样做 为了我自己的时间

随机推荐

  • 在 Git 中维护“服务器版本”(仅更改配置文件)的正确方法是什么?

    我有时使用 Codeigniter 在本地站点上完成开发后 我需要将文件迁移到服务器 中的所有文件 config 需要更改文件夹以匹配服务器设置 对这些更改进行完整提交是不对的 我是否只是让 Git 完全忽略这些文件 或者有没有办法跟踪这些
  • C# 可为空字符串错误

    private string typeOfContract get return string ViewState typeOfContract set ViewState typeOfContract value 稍后在代码中我这样使用它
  • Spring REST - RestTemplate 可以使用多部分/混合吗?

    我想编写一个 REST 服务 它响应一个 zip 文件和一些 json 数据 所有内容都在一个多部分 混合请求中 服务器部分工作正常 我正在使用 Firefox 的 REST 客户端对其进行测试 我的服务器发送这样的多部分 k dXaXvC
  • 实体框架不适用于没有标识列的表

    我有下表 create table tbl id int identity 1 1 val varchar 100 现在 当我使用实体框架将对象映射到该表时 它可以工作 但是当我按如下方式更改表定义时 create table tbl1 i
  • 在 SendGrid C# 中将电子邮件作为日历邀请/约会发送

    我想向 Outlook 以及非 Outlook 客户端 例如 gmail yahoo 发送一封包含日历邀请 约会的电子邮件 我的应用程序托管在 Azure 上 我使用 SendGrid 发送电子邮件 电子邮件部分工作得很好 但我还没有找到任
  • 开发 URL 缩短器

    我正在尝试开发一个 URL 缩短器应用程序来练习 Django 我不明白如何为每个长 URL 创建唯一的字符串以用作短 URL 就像其他流行的 URL 缩短器一样 我怎样才能做到这一点 是否可以使所有短网址的长度相同 我不明白如何为每个长
  • 在 Perl 中获取 UTC 偏移量的最佳方法是什么? [复制]

    这个问题在这里已经有答案了 我需要以跨平台 Windows 和各种风格的 Unix 方式在 Perl 中获取当前时区的 UTC 偏移量 它应该满足以下格式 zzzzzz 表示相对于 UTC 的 hh mm 看来我应该能够通过strftime
  • 如何为 log4j 设置单独的日志记录流?

    假设我有一堂这样的课 public class MyClass private Logger log LoggerFactory getLogger MyClass class org slf4j LoggerFactory public
  • 在 Chrome 中上传返回 Aw, Snap 页面

    从 chrome 的上次更新 版本 36 0 1985 125 m 开始 我遇到了 uplodify 插件 flash 的问题 Chrome 会显示 噢 Snap Page 有时还会显示 他死了 吉姆 这是我的上传代码
  • Android 文件管理器库 [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 目前不接受答案 诚然 我在 Android 开发方面没有经验 我正在寻找一些 API 可以让我浏览用户文件 而无需通过意图安装单独的应用程序 现在我已经找到了OI
  • java程序中的代理设置

    我正在尝试通过 Eclipse 中的 java 程序使用从 wsdl 生成的客户端连接到 Web 服务 我正在通过代理服务器传递我的请求 但似乎请求没有通过 相同的代理设置在 SoapUI 上运行良好 请在下面找到我设置的系统属性 Prop
  • 如何测试多个变量与单个值的相等性?

    我正在尝试创建一个函数 将多个变量与一个整数进行比较并输出一个由三个字母组成的字符串 我想知道是否有办法将其翻译成Python 所以说 x 0 y 1 z 3 mylist if x or y or z 0 mylist append c
  • 陷阱起火后退出

    拿这个脚本 bin sh fd echo Hello world exit trap fd EXIT INT for g in 1 5 do echo foo sleep 1 done 我想fd从 Control C 或脚本正常退出时触发一
  • 从多对多 SQLAlchemy 和 Postgresql 中删除

    我正在尝试从 sql alchemy 中的多对多关系中删除子对象 我不断收到以下错误 StaleDataError DELETE statement on table headings locations expected to delet
  • Android旋转imageview,我无法在onAnimationEnd()中设置imageview的最终位置

    我想在每次单击按钮时将图像视图旋转 30 度 在第一个 CLIC 上 我可以正确设置动画 但在动画后无法成功更新图像视图位置 当我再次单击按钮时 动画从图像视图的原始位置开始 而不是从第一个动画之后的最终位置开始 这是我的代码 public
  • 将文本读入缓冲区后如何逐行读取?

    首先 我通过调用fread将文本读入缓冲区 然后我想逐行读取它 该怎么做 我尝试使用 sscanf 但似乎不起作用 char textbuf 4096 char line 256 FILE fp fp fopen argv 1 r mems
  • 简单的 Javascript 来模仿在事件处理程序中使用它的 jQuery 行为

    这不是关于 jQuery 的问题 而是关于 jQuery 如何实现这种行为的问题 在 jQuery 中你可以这样做 some link id click function alert this tagName displays A 有人可以
  • 将函数相互嵌套是一种不好的做法吗? [关闭]

    Closed 这个问题是基于意见的 目前不接受答案 在嵌套函数中嵌套函数有什么缺点 这是一个例子 JS jQuery function one do something function two do something function
  • Obj-C 有@available。 Swift 有#available。我可以在 C/C++ 中使用什么?

    如果您的代码需要仅在 macOS 10 12 或更高版本中可用的功能 但您希望代码也部署到早期系统版本 您可以使用 available在 Objective C 中 if available macOS 10 12 Code that re
  • 连接“无连接” boost::asio::ip::udp::socket

    我最近通过浏览网络了解了 UDP 套接字 所有解释它的页面都提到 UDP 套接字是 无连接 如果我理解正确的话 这意味着两个套接字之间没有 连接 而是将数据报包发送到指定的端点 而不知道另一端是否正在侦听 然后我开始阅读 boost asi