从套接字描述符恢复 IP/端口

2023-11-23

我在写inetd 的克隆我必须运行一个服务器来打印连接到它的客户端的 IP 和端口。

当我覆盖时STDIN and STDOUT使用套接字描述符,我最初的解决方案这样做是为了恢复sockaddr_in结构,其中包含所需的信息。这样做与getsockname()然而,返回一个空结构,所有位都设置为 0。

知道我的方法有什么问题吗?我可以使用其他方法来恢复 IP/端口吗?

Thanks


正如 R.. 指出的,你应该使用getpeername。这两个功能和getsockname将文件描述符作为其第一个参数,而不是流指针(FILE *). Use fileno(stdin)获取标准输入的文件描述符(或将其硬编码为STDIN_FILENO,因为它是常数)。

另外,最后一个论点getsockname and getpeername应该是一个指针socklen_t,不是一个常数,你应该使用sockaddr_in对于 TCP/IP:

struct sockaddr_in peeraddr;
socklen_t peeraddrlen = sizeof(peeraddr);
getpeername(STDIN_FILENO, &peeraddr, &peeraddrlen);

查看完整示例here.

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

从套接字描述符恢复 IP/端口 的相关文章

随机推荐

  • ASP.NET Core 中的会话变量值变为 null

    我在一种方法中设置会话变量 并尝试从控制器中的另一种方法获取会话变量值 但它总是为空 这是我的代码 public class HomeController Controller public IActionResult Index Http
  • 将 R 向量转换为 1 个元素的字符串向量 [重复]

    这个问题在这里已经有答案了 我现在使用 R 编程语言 我有一个向量 a lt c aa bb cc 我想将它们粘贴到系统命令中 我现在正在尝试这种方式 args lt paste a sep system paste command arg
  • CGImageCreateWithMask 效果很好,但在我的结果图像中,遮罩区域是黑色的,如何将其设置为白色?

    我这样掩盖了我的形象 CGImageRef maskRef UIImage imageNamed testMask2 png CGImage CGImageRef mask CGImageMaskCreate CGImageGetWidth
  • Tensorflow 中的计划采样

    关于 seq2seq 模型的最新 Tensorflow api 已包含计划采样 https www tensorflow org api docs python tf contrib seq2seq ScheduledEmbeddingTr
  • 当我的应用程序收到内存警告时该怎么办?

    当我的应用程序收到内存警告时我应该做什么 这完全取决于您的应用程序 通常除了遵循 Apple 推荐的做法之外 您无需执行任何特殊操作 目前不可见的 ViewController 将获得didReceiveMemoryWarning信息 默认
  • H264 NAL 单元前缀

    我需要对 H264 NAL 单位分隔符前缀进行一些澄清 00 00 00 01 and 00 00 01 我正在使用 Intel Media SDK 生成 H264 并将其打包到 RTP 中 问题是到目前为止我只是在寻找00 00 00 0
  • 在循环内部或外部声明变量

    为什么以下工作正常 String str while condition str calculateStr 但这据说是危险 不正确的 while condition String str calculateStr 是否需要在循环外声明变量
  • AngularJS 指令中自定义 HTML 标签的后果

    假设我写了一个自定义gravatarAngularJS 中的指令绑定到email范围上的属性 该指令将替换此 HTML
  • 如何扩展谷歌分析来跟踪 AJAX 等(根据 H5BP 文档)

    我正在尝试安装google analytics augments中确定的extend mdH5BP 文件 https github com h5bp html5 boilerplate blob v4 3 0 doc extend md 它
  • p:ajax 事件用于惰性 p:dataTable 分页

    当我的列表在延迟加载数据表期间更新时 我无法找到将执行我的 javascript 的 ajax 事件 该 JavaScript 负责根据我的列表更新图像封面流 该列表在初始数据表加载期间 进行分页以及更改页面上的记录数时重新填充 非常感谢您
  • 创建 NULL 数据库表最佳实践

    不确定处理问题的最佳实践是什么NULL当我有一个表时的值 其中两个字段有时只填充创建很多NULL行中的值 是否应该将这两个字段移动到一个单独的表中 创建两个没有任何字段的表NULL values 这两个表之间的联接只会返回一个与我的原始表相
  • 如何在android中运行openCV相关应用程序,而不使用OpenCV管理器

    在我的 Android 应用程序中 我使用 OpenCV 库的静态加载 IE OpenCVLoader initDebug 在模拟器上运行时它将返回 true 但是返回错误在 移动 设备上运行时 如果我使用 OpenCVLoader ini
  • 使用 JMH 控制方法的顺序

    我在我的项目中使用 JMH 基准测试 我用 Benchmark注释了方法1和方法2 我希望顺序是 method1 method2 mehod1 method2 等等 这意味着 我希望方法 2 会立即遵循方法 1 有没有办法这样做 谢谢你 J
  • 如何让 Materialise 选择下拉列表与 React 一起使用?

    添加以下模板代码由物化提供不能立即在 React 组件中工作 div class input field col s12 div
  • 如何在AdvancedCustomDrawItem期间绘制TTreeView的样式选择矩形?

    我是做定制的TTreeView使用从头开始绘制OnAdvancedCustomDrawItem事件 我想知道如何在我的所有者绘制项目的背景中正确渲染这些选择和热矩形 它们是 Vista 7 风格的 所以我不能简单地用纯色填充背景 我尝试在以
  • 生成唯一的 6 位数代码

    我正在根据以下字符生成 6 位代码 这些将用于在贴纸上盖印 它们将以 10k 或更少的批次生成 在打印之前 我预计总数不会超过 1 200 万 可能要少得多 生成批量代码后 我将检查现有代码的 MySQL 数据库以确保没有重复 exclud
  • 透明 SCNFloor 上的 SceneKit 阴影()

    我有一个floor node 我需要在其上投射阴影directional light 该节点需要是透明的 用于AR环境 当我使用时这效果很好ARKit 但使用相同的设置SceneKit没有显示任何阴影或反射 我怎样才能投下阴影SceneKi
  • 为整个应用程序设置 CurrentCulture 的简单方法?

    在 net 2 winforms 应用程序中 为整个应用程序设置区域性的好方法是什么 为每个新线程设置 CurrentThread CurrentCulture 是重复的且容易出错 理想情况下 我想在应用程序启动时设置它并忘记它 NET 中
  • Spring Boot 中 Thymeleaf 的几个模板位置

    现在Spring Boot允许一个值Thymeleaf模板位置与spring thymeleaf prefix财产 默认值为classpath templates 我想要为 thymeleaf 模板设置另一个位置 但保留默认位置 在 jar
  • 从套接字描述符恢复 IP/端口

    我在写inetd 的克隆我必须运行一个服务器来打印连接到它的客户端的 IP 和端口 当我覆盖时STDIN and STDOUT使用套接字描述符 我最初的解决方案这样做是为了恢复sockaddr in结构 其中包含所需的信息 这样做与gets