总是需要绑定套接字吗?

2024-03-30

好吧,我的问题可能看起来像是一个基本问题,但我对网络编程方面很陌生。 我想知道:

1)是否总是需要绑定套接字才能从中接收消息?我看到一个嗅探器代码(原始套接字),其中直接调用recvfrom以及它调用的另一段代码bind然后是接收。

2) AF_* 和 PF_* 系列有什么区别?后者与POSIX有关吗? 推荐的是哪一款呢?


不,你不需要bind()。

如果您使用 TCP 或 UDP 套接字,并且计划使用 connect() 或使用 sendto() 将数据包发送到目的地,则当您尝试连接或发送时,内核会自动将套接字绑定到合适的端口号。 。这通常是首选方式。 bind()ing 客户端套接字被认为是有害的。

AF_UNIX 套接字也是如此 - 客户端不需要绑定,通常也不应该这样做。

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

总是需要绑定套接字吗? 的相关文章

随机推荐

  • 是否可以使用 jQuery(或其他库)*不*滚动 div ?

    我想以编程方式滚动 divwithout使用任何库 可能吗 如果可能的话 如何实现 谢谢 是的 var myEl document getElementById myEl myEl scrollLeft 12 myEl scrollTop
  • 测试当前目录是否在 Rails 项目内 (bash)

    有没有一种简单的方法来测试当前目录是否在 Rails 项目内 显然 Rails 本身对此进行了测试 以便使用 Rails 子命令 生成 脚手架等 因此大概有一种直接的方法来测试这一点 我正在寻找与您类似的东西测试您是否在 Git 存储库中
  • 如何确定Compact Framework 3.5中dll文件的文件版本[重复]

    这个问题在这里已经有答案了 我想在指定路径时确定 c 中 dll 文件的文件版本 假设 path x y z dll 给定路径时如何查找 z dll 的文件版本 注意 我使用 Compact Framework 3 5 SP1 Get th
  • Bootbox 警报框中的新行

    我想在我的 Bootbox Alert Box 中新建一行 我知道在 Javascript 中你可以使用 n但这似乎不起作用 这是我尝试过的 bootbox alert Hello n world 您可以使用 html 来实现 bootbo
  • printf 中可以使用指向字符串的指针吗?

    我在想这样的事情 include
  • 使用角度材质 2 输入的自定义样式

    我正在尝试设计输入的样式 使其具有一定的宽度 我正在使用 Angular Material 2 但由于某种原因 css 中的样式没有应用于输入标签 这是我的问题的一个工作插件 http plnkr co edit qHbyig0gHtxdq
  • 解耦(并行处理)Web 应用程序的非立即进程的最佳方法?

    我正在寻找一种好的策略来真正解耦我的 Web 应用程序 ASP NET MVC C 的非立即进程 以进行并行处理 我将非立即定义为不需要立即完成以呈现页面或更新信息的所有事情 这些过程包括发送电子邮件 根据数据库信息更新一些内部统计数据 从
  • 从 dymola 模型获取高质量图片

    我需要从 dymola 的建模对象中获得相当好的图像 由于模型的尺寸 截取屏幕截图 使用截图工具会导致图片质量非常差 有没有办法导出我在dymola中画的 图片 您可以将模型导出为可扩展和可编辑的 SVG 图像 此致 雷内 贾斯特 尼尔森
  • 有没有办法将 Unicode 文本存储在配置为“US7ASCII”的 Oracle 数据库中

    我们最近遇到了一个障碍 即商标符号从一个 Oracle 数据库复制到另一个数据库 但它看起来像 我们已将问题跟踪到配置了 US7ASCII 字符集的目标数据库 不幸的是 我们目前无法重建数据库来解决这个问题 有没有一种方法可以定义特定列来使
  • C++ 3sum 复杂度

    我试图解决cpp中的3和问题 给定一个由 n 个整数组成的数组 S S 中是否存在满足 a b c 0 的元素 a b c 查找数组中所有总和为零的唯一三元组 class Solution public vector
  • WxPython:符合“确定”/“取消”按钮顺序的跨平台方式

    我正在学习 wxPython 所以大多数库和类对我来说都是新的 我正在创建一个首选项对话框类 但不知道确保 确定 取消 或 保存 关闭 按钮在平台上的顺序正确的最佳方法 该程序旨在在 GNOME 和 Windows 上运行 因此我想确保每个
  • rdi 寄存器用于无参数函数的目的

    考虑这个简单的函数 struct Foo int a int b int c int d int e int f Foo foo Foo f f a 1 f b 2 f c 3 f d 4 f e 5 f f 6 return f 它生成以
  • 无法为 Linux Redhat 服务器上安装的 R studio 安装 Devtools 包

    我无法安装devtools在 Redhat Linux 服务器上的 R Studio 中打包 这些错误消息出现 ERROR configuration failed for package RCurl removing home xx R
  • Stripe CLI ubutu 安装问题

    我想在 ubuntu 20 04 上安装 Stripe CLI 我按照 Stripe 文档中的步骤安装 从以下位置下载最新的 linux tar gz 文件https github com stripe stripe https githu
  • 如何使用 Jetty 客户端获取基于请求的连接所花费的时间

    我想计算根据要求请求开始和连接建立 TCP 连接建立 之间的时间 我问了这个问题question https stackoverflow com questions 66605208 how to get the time it took
  • 来自同一原始指针的 C++ 多个唯一指针

    考虑下面我的代码 我对唯一指针的理解是 只能使用一个唯一指针来引用一个变量或对象 在我的代码中 我有多个 unique ptr 访问同一变量 这显然不是我所知道的使用智能指针的正确方法 因为指针应该从创建时就拥有完整的所有权 但是 为什么这
  • 在 Android 移动设备上使用 Chrome 调试 Service Worker

    我正在开发一个渐进式 Web 应用程序 为了确保它可以在移动设备上运行 特别是在 Android 版 Chrome 上 因为它有 90 的用户 我正在尝试在 Android 设备上测试 Service Worker 不幸的是 在安卓版 Ch
  • 将芯片/标签移出 MUI 中的自动完成框

    我正在使用MUIAutocomplete组件并试图弄清楚是否可以移动芯片 标签outside输入框的 这可能吗 我更希望芯片列在盒子下方 这样 文本框就可以仅用于用户输入 而不是both显示芯片 标签和用户输入 我尝试过使用其中一个基本演示
  • 使用数据注释传递错误消息字符串

    使用数据注释的错误消息 但在 ErrorMessage 中我想传递变量字符串 但是当我这样做时 它会在构建项目时给出错误 string errorMessage Something happened Remote IsTimeValid A
  • 总是需要绑定套接字吗?

    好吧 我的问题可能看起来像是一个基本问题 但我对网络编程方面很陌生 我想知道 1 是否总是需要绑定套接字才能从中接收消息 我看到一个嗅探器代码 原始套接字 其中直接调用recvfrom以及它调用的另一段代码bind然后是接收 2 AF 和