从 sockaddr_storage 检索 ip 和端口

2024-05-16

我有一个sockaddr_storage包含远程主机的 ipv4 地址和端口。我没见过这些struct但之前我不知道如何将它转换成struct我可以直接检索IP地址和端口号。我尝试过谷歌搜索struct但还没有发现任何东西。关于如何执行此操作有什么建议吗?

Thanks


您可以将指针投射到struct sockaddr_in * or struct sockaddr_in6 *并直接访问成员,但这将引发一系列有关别名违规和错误编译问题的蠕虫病毒。

更好的方法是将指针传递给getnameinfoNI_NUMERICHOST and NI_NUMERICSERVflags 获取地址和端口的字符串表示形式。这样做的优点是无需额外代码即可支持 IPv4 和 IPv6,并且理论上也支持所有未来的地址类型。您可能必须将指针投射到void * (or struct sockaddr *明确地,如果您使用 C++)将其传递给getnameinfo,但这应该不会引起问题。

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

从 sockaddr_storage 检索 ip 和端口 的相关文章

随机推荐

  • 自定义 SVG 未加载到我的图像标签中

    目前我正在尝试将自定义 svg 组件加载到图像标签内 但由于某种原因 我无法看到地图组件内的 svg 图像 我的自定义 SVG 文件如下所示 我在 SVG 中加载另一个图像
  • 仅当重复行与模式匹配时才删除它们

    这个问题 https stackoverflow com questions 1444406 how can i delete duplicate lines in a file in unix有一个很好的答案说你可以使用awk seen
  • X11 等待并获取剪贴板文本

    我必须监视 X11 剪贴板 目前 我每 5 秒请求一次剪贴板选择 然后对从剪贴板返回的文本进行哈希处理 并将其与上次检查的哈希计算结果进行比较 如果哈希值不相同 我会分析文本内容并做一些事情 我不喜欢我的方法 我来自Windows 使用wi
  • 正则表达式替换混合数字+字符串

    我想删除所有包含数字的单词 示例 LW23 London W98 String 从上面的字符串中我唯一想保留的是 London String 这可以用正则表达式来完成吗 我目前正在使用 Python 但 PHP 代码也很好 Thanks E
  • 实体框架服务层更新 POCO

    我正在使用Service Layer gt Repository gt Entity Framework Code First w POCO objects方法 我在更新实体方面遇到了困难 我正在使用 AutoMapper 将域对象映射到视
  • 从单个 javascript 函数向两个不同的 PHP 脚本发送两个 Ajax 请求

    是否可以同时向两个或多个 Php 脚本发送 Ajax 请求 我知道这可以串行实现 从 1 获取响应 然后从另一个获取响应 但我想知道是否可以同时实现 请协助我使用以下代码 function calShowUpload if http rea
  • Spark 2.2 无法将 df 写入 parquet

    我正在构建一个聚类算法 我需要存储模型以供将来加载 我有一个具有以下架构的数据框 val schema new StructType add StructField uniqueId LongType add StructField tim
  • GCP BigQuery如何通过python api设置表的到期日期

    我正在使用 BigQuery Python API 创建表 并且想为该表设置一个到期日期 以便该表会在特定天数后自动删除 这是我的代码 client bq Client job config bq QueryJobConfig datase
  • 删除分组 UITableView 中的分隔符

    我需要使用自定义单元格创建分组表格视图 每个单元格必须有一个背景图像 以便一个单元格的图像会接触第二个单元格的图像 依此类推 我尝试将分隔符样式设置为 无 但我仍然得到单元格之间的透明分隔符 请帮我删除单元格之间的空间 祝你有美好的一天 谢
  • 根据属性值使用 xslt 合并两个元素

    这是我的源文件的样子
  • 在 FacesConverter 中使用 ManagedBean

    我想用ManagedBean in my Converter The ManagedBean负责从数据库获取数据 在Converter我想将字符串转换为必须从数据库获取的对象 这是我的转换器 FacesConverter forClass
  • 如何将服务器端 Shiny 应用程序嵌入到 JSP 页面中而不将该应用程序暴露在其他地方

    我有一个闪亮的应用程序 我想将其嵌入到托管在 Amazon AWS 上的 Java 8 Web 服务器的页面中 注意 我说 嵌入 是因为网络服务器中的大多数页面共享一个公共侧边栏和页脚 这会自动应用于大多数视图 这样 jsp 文件只需为页面
  • 降低Python中的浮点精度以提高性能[重复]

    这个问题在这里已经有答案了 我正在树莓派上使用 python 我使用互补滤波器从陀螺仪中获得更好的值 但它消耗了太多树莓派的电量 大约为 70 我认为可以通过降低浮点精度来提高性能 现在 结果大约有 12 位小数 这超出了我的需要 有什么办
  • 如何将变量传递给 django 中的所有模板? [复制]

    这个问题在这里已经有答案了 我正在尝试将变量 浏览器变量 传递给我的应用程序中的所有模板 关于如何让它发挥作用有什么建议吗 View def browser request primary cat list Categories objec
  • Android 从键盘读取

    我的登录屏幕根本没有文本字段 当用户使用 RFID 扫描仪扫描他的 id 令牌时 我会得到一个 8 个字符长的字符串 其原理与使用键盘相同 只是更快 我希望我的登录活动在用户扫描其令牌时而不是之前执行 有一个聪明的方法来实现这个吗 我不能有
  • ModelMapper,将实体列表映射到 DTO 对象列表

    我正在使用 Spring MVC 框架编写简单的博客 Web 应用程序 我愿意补充DTO层到我的应用程序 我决定使用模型映射器 http modelmapper org 转换框架Entity反对DTO我的观点中使用的对象 我只有一个问题 在
  • 二元运算符“/”不能应用于两个(Int)操作数[重复]

    这个问题在这里已经有答案了 我得到了Binary operator cannot be applied to two Int operands当我将以下代码放入 Xcode 中的 Swift Playground 时出错 func sumO
  • 将 Python 3.5 项目转换为 Jython - UnicodeDecodeError: 'unicodeescape' 编解码器无法解码位置 4-10 中的字节:非法 Unicode 字符

    我的最终目的是将正在运行的 Python 项目转换为 Jython 解释器 因为将添加一些 java API Details 最新的 Jython 是 2 7 我的项目可以使用 Python 3 5 运行 所以我采取了以下方法 第一件事是利
  • WCF 服务参考支持文件未更新

    我有一个 VS 2010 解决方案 其中包含一个 WCF 服务项目和一个单元测试项目 单元测试项目有一个对WCF服务的服务引用 WCF 服务项目的 Web config 将许多绑定属性设置为非默认值 网络配置 特别注意maxBufferSi
  • 从 sockaddr_storage 检索 ip 和端口

    我有一个sockaddr storage包含远程主机的 ipv4 地址和端口 我没见过这些struct但之前我不知道如何将它转换成struct我可以直接检索IP地址和端口号 我尝试过谷歌搜索struct但还没有发现任何东西 关于如何执行此操