总是需要绑定套接字吗?

2024-03-30

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

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

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


不,你不需要bind()。

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

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

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

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

  • 传递给函数时多维数组的指针类型是什么? [复制]

    这个问题在这里已经有答案了 我在大学课堂上学习了 C 语言和指针 除了多维数组和指针之间的相似性之外 我认为我已经很好地掌握了这个概念 我认为由于所有数组 甚至多维 都存储在连续内存中 因此您可以安全地将其转换为int 假设给定的数组是in
  • 如何从本机 C(++) DLL 调用 .NET (C#) 代码?

    我有一个 C app exe 和一个 C my dll my dll NET 项目链接到本机 C DLL mynat dll 外部 C DLL 接口 并且从 C 调用 C DLL 可以正常工作 通过使用 DllImport mynat dl
  • 如何连接重叠的圆圈?

    我想在视觉上连接两个重叠的圆圈 以便 becomes 我已经有部分圆的方法 但现在我需要知道每个圆的重叠角度有多大 但我不知道该怎么做 有人有主意吗 Phi ArcTan Sqrt 4 R 2 d 2 d HTH Edit 对于两个不同的半
  • 需要帮助优化算法 - 两百万以下所有素数的总和

    我正在尝试做一个欧拉计划 http projecteuler net问题 我正在寻找 2 000 000 以下所有素数的总和 这就是我所拥有的 int main int argc char argv unsigned long int su
  • Linux 中 m 标志和 o 标志将存储在哪里

    我想知道最近收到的路由器通告的 m 标志和 o 标志的值 从内核源代码中我知道存储了 m 标志和 o 标志 Remember the managed otherconf flags from most recently received R
  • SSH,运行进程然后忽略输出

    我有一个命令可以使用 SSH 并在 SSH 后运行脚本 该脚本运行一个二进制文件 脚本完成后 我可以输入任意键 本地终端将恢复到正常状态 但是 由于该进程仍在我通过 SSH 连接的计算机中运行 因此任何时候它都会登录到stdout我在本地终
  • C# 列表通用扩展方法与非通用扩展方法

    这是一个简单的问题 我希望 集合类中有通用和非通用方法 例如List
  • 有没有一种快速方法可以从 Jar/war 中删除文件,而无需提取 jar 并重新创建它?

    所以我需要从 jar war 文件中删除一个文件 我希望有类似 jar d myjar jar file I donot need txt 的内容 但现在我能看到从 Linux 命令行执行此操作的唯一方法 不使用 WinRAR Winzip
  • 复制目录下所有文件

    如何将一个目录中的所有内容复制到另一个目录而不循环遍历每个文件 你不能 两者都不Directory http msdn microsoft com en us library system io directory aspx nor Dir
  • 如何实例化 ODataQueryOptions

    我有一个工作 简化 ODataController用下面的方法 public class MyTypeController ODataController HttpGet EnableQuery ODataRoute myTypes pub
  • 相当于Linux中的导入库

    在 Windows C 中 当您想要链接 DLL 时 您必须提供导入库 但是在 GNU 构建系统中 当您想要链接 so 文件 相当于 dll 时 您就不需要链接 为什么是这样 是否有等效的 Windows 导入库 注意 我不会谈论在 Win
  • C++ 继承的内存布局

    如果我有两个类 一个类继承另一个类 并且子类仅包含函数 那么这两个类的内存布局是否相同 e g class Base int a b c class Derived public Base only functions 我读过编译器无法对数
  • 当文件流没有新数据时如何防止fgets阻塞

    我有一个popen 执行的函数tail f sometextfile 只要文件流中有数据显然我就可以通过fgets 现在 如果没有新数据来自尾部 fgets 挂起 我试过ferror and feof 无济于事 我怎样才能确定fgets 当
  • C# 中最小化字符串长度

    我想减少字符串的长度 喜欢 这串 string foo Lorem ipsum dolor sit amet consectetur adipiscing elit Aenean in vehicula nulla Phasellus li
  • FileOutputStream.close() 中的设备 ioctl 不合适

    我有一些代码可以使用以下命令将一些首选项保存到文件中FileOutputStream 这是我已经写了一千遍的标准代码 FileOutputStream out new FileOutputStream file try BufferedOu
  • 指针和内存范围

    我已经用 C 语言编程有一段时间了 但对 C 语言还是很陌生 有时我对 C 处理内存的方式感到困惑 考虑以下有效的 C 代码片段 const char string void where is this pointer variable l
  • 类型或命名空间“MyNamespace”不存在等

    我有通常的类型或命名空间名称不存在错误 除了我引用了程序集 using 语句没有显示为不正确 并且我引用的类是公共的 事实上 我在不同的解决方案中引用并使用相同的程序集来执行相同的操作 并且效果很好 顺便说一句 这是VS2010 有人有什么
  • Mono 应用程序在非阻塞套接字发送时冻结

    我在 debian 9 上的 mono 下运行一个服务器应用程序 大约有 1000 2000 个客户端连接 并且应用程序经常冻结 CPU 使用率达到 100 我执行 kill QUIT pid 来获取线程堆栈转储 但它总是卡在这个位置
  • 从 mvc 控制器使用 Web api 控制器操作

    我有两个控制器 一个mvc控制器和一个api控制器 它们都在同一个项目中 HomeController Controller DataController ApiController 如果我想从 HomeController 中使用 Dat
  • 如何确定 CultureInfo 实例是否支持拉丁字符

    是否可以确定是否CultureInfo http msdn microsoft com en us library system globalization cultureinfo aspx我正在使用的实例是否基于拉丁字符集 我相信你可以使

随机推荐

  • 是否可以使用 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 和