TCP recvfrom() 不存储“from”

2024-04-03

我正在使用 TCP 制作一个服务器程序,我想获取我刚刚收到的消息发送者的 IP 地址。这是我的代码:

case FD_READ:
{    //Incoming data; get ready to receive
    char buffer[DEFAULT_BUFLEN];
    int bytes_received; 
    memset(buffer, '\0', sizeof(buffer));

    struct sockaddr_in recvIn;
    int recv_length = sizeof(struct sockaddr);

    memset((void *)&recvIn, '\0', recv_length);

    bytes_received = recvfrom(wParam, buffer, DEFAULT_BUFLEN, 0, (struct sockaddr *)&recvIn, &recv_length);
    cout << inet_ntoa(recvIn.sin_addr) << "\n";

    break;
}

所以我使用 Windows 消息来查看是否应该检查数据包。接收数据有效,我可以读取它以及一切。但recvIn 变量不会被recvfrom 改变。因此,当我执行 cout

谢谢您的宝贵时间,我希望我能解决这个问题!


TCP 是一种面向连接的协议。from and fromlen旨在与无连接协议(例如 UDP)一起使用。根据文档 http://msdn.microsoft.com/en-us/library/windows/desktop/ms740120%28v=vs.85%29.aspx, recvfrom忽略from and fromlen用于面向连接的套接字。

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

TCP recvfrom() 不存储“from” 的相关文章

  • OpenCV Visual Studio ntdll.dll

    我尝试在 Visual Studio 2013 上使用 OpenCV 2 4 10 创建一个项目 但由于以下异常 到目前为止我运气不佳 请建议帮助 TIA letstryitonemoretime exe Win32 Loaded C Us
  • 隐式方法组转换陷阱

    我想知道为什么给定代码的输出 在 LinqPad 中执行 void Main Compare1 Action Main Dump Compare2 Main Dump bool Compare1 Delegate x return x Ac
  • 使用静态类型代替变量

    当您的项目不使用命名空间时 有什么方法可以告诉编译器使用静态类型而不是变量吗 例如 我有一个名为 User 的类 它具有各种静态和非静态方法 假设调用了其中一个静态方法GetUser 我想称之为User GetUser 方法来自一个方法 该
  • 将列表(对象)转换为列表(字符串)

    有没有办法转换List of Object to a List of String 在 c 或 vb net 中而不迭代所有项目 幕后迭代很好 我只想要简洁的代码 Update 最好的方法可能就是进行新的选择 myList Select f
  • C++ 私有静态成员变量

    此 C 代码在编译时产生链接器错误 A h class A public static void f private static std vector
  • 正则表达式删除某些字符周围不需要的空格

    我正在尝试从 JavaScript 文件中删除一些不需要的空格 并在将文件发送到客户端之前使用 C 和 Regex 组合文件 我有一个JavascriptHandler处理 js 文件 效果很好 这是我用来 打包 JavaScript 的函
  • C++ 中的 Java ArrayList [重复]

    这个问题在这里已经有答案了 在Java中我可以做 List
  • 如何防止字符串被截留

    我的理解 可能是错误的 是 在 C 中 当你创建一个字符串时 它会被实习到 实习生池 中 这保留了对字符串的引用 以便多个相同的字符串可以共享操作内存 但是 我正在处理很多很可能是唯一的字符串 一旦完成每个字符串 我需要将它们从操作内存中完
  • 以标准用户身份打开默认浏览器 (C++)

    我目前正在使用 ShellExecute 打开 在用户浏览器中打开 URL 但在 Win7 和 Vista 中遇到了一些麻烦 因为该程序作为服务运行提升 当 ShellExecute 打开浏览器时 它似乎读取 本地管理员 配置文件而不是用户
  • 替换 JSON 中的转义字符

    我想用空格替换 JSON 字符串中的 字符 我怎样才能做到这一点 我发现从 JSON 字符串中删除所有转义字符的最简单 最好的方法是将字符串传递到正则表达式 Unescape 方法 此方法返回一个没有转义字符的新字符串 甚至删除了 n t
  • 如何附加到 xml

    我有这个xml
  • 枚举器上的 [[maybe_unused]]

    查看规格 maybe unused http en cppreference com w cpp language attributes 它指出 出现在类 typedef 变量 非静态数据成员 函数 枚举或枚举器的声明中 如果编译器对未使用
  • 在不使用 Thread.Sleep c# 的情况下延迟发送电子邮件

    我有一个 for 循环 它循环并每个循环发送一封电子邮件 现在我正在使用 thread sleep 但我希望用户仍然能够与程序交互 只需取消该循环即可 是否可以在不使用 thread sleep 的情况下做到这一点 您是否在 UI 线程上运
  • .Net Core 中的脚手架以及解决方案中的多个项目

    我创建了一个针对 net461 的 Net Core MVC6 应用程序 我使用了一个我非常熟悉的项目结构 其中我将数据 模型和服务类放置在单独的类库项目中 并且 Web 项目引用这些项目 当我尝试搭建控制器时 我收到一条错误 指出我正在搭
  • std::string 在 Visual Studio 上的具体行为?

    我有一个项目需要读取 写入大文件 我决定使用 ifstream read 将这些文件一次性放入内存中 放入 std string 中 这似乎是在 C 中执行此操作的最快方法 http insanecoding blogspot com 20
  • C# 的空条件委托调用线程安全吗? [复制]

    这个问题在这里已经有答案了 这就是我一直以来编写事件引发者的方式 例如属性更改 public event PropertyChangedEventHandler PropertyChanged private void RaisePrope
  • C 中什么函数可以替换字符串中的子字符串?

    给定一个 char 字符串 我想查找所有出现的子字符串并将其替换为备用字符串 我没有看到任何简单的函数可以实现这一点
  • C/C++ 通过 Android NDK 在 JNI 中看不到 Java 方法

    我正在尝试从使用 NDK 构建的 C 类文件调用 Java 方法 它不断抛出常见的 未找到非静态方法 错误并导致整个 Android 应用程序崩溃 下面的代码片段 有些东西可能不需要 但我按原样保留它们 因为焦点 问题在于refreshJN
  • FakeItEasy 代理方法调用实际实现

    我正在尝试将对假对象的调用代理到实际的实现 这样做的原因是我希望能够使用 Machine Specifications 的 WasToldTo 和 WhenToldTo 它们仅适用于接口类型的伪造 因此 我正在执行以下操作来代理对我的真实对
  • 什么时候使用静态库需要头文件?

    如果我在 Linux 中用 C 创建一个静态库并生成 a 文件 我 或其他人 如何使用该库 例如 我的库定义了一个类 我认为仅仅提供 a 文件是不够的 还需要提供头文件 我如何知道 a 文件必须提供哪些头文件 例如 我是否需要提供我的库代码

随机推荐

  • WPF ValidationRule 加载控件时验证

    我有一个带有此验证的控件
  • 使用环境变量识别 Cygwin、Linux、Windows

    当 makefile 需要在不同的操作系统上运行并且应根据操作系统正确设置各种设置 转义 路径分隔符等 时 就会出现问题 第一种方法是使用 Windows COMSPEC ifneq COMSPEC ComSpec in windows e
  • 在 WHERE 语句中使用子查询的别名

    我正在尝试在 WHERE 语句中使用在 SELECT 中创建的别名 它不起作用 我在另一个问题中读到了原因 如何在不重复子查询的情况下完成这项工作 SELECT p PatientID p PatientType p AccountNumb
  • 使用 axios 的 API 请求始终未经 Laravel API 的授权

    我正在使用一个个人项目Laravel https laravel com 5 6 和Axios https github com axios axios库 标准 Laravel5 6 https laravel com docs 5 6包裹
  • iOS 电影播放器​​可以在多大程度上进行定制和设计?

    我正在尝试完成类似于下图的事情 也就是说 我想添加一个滑出式覆盖导航栏和其他覆盖功能 一般来说 我也想知道电影播放器 可以进行什么样的定制 具体来说 我可以从顶部栏中添加 删除按钮吗 如何将这些点添加到播放栏 谢谢 http blog ho
  • MVC如何返回带参数的视图

    目前我有一个有效的方法 当单击此处的 Razor 中的代码链接时 它正在工作 Html ActionLink New User Register Register new OpenID Model OpenID 我希望具有相同的效果 但从控
  • 如何通过 PHP 更改 Joomla 管理员 URL - 无插件

    由于我是 Joomla 的新手 我想知道是否有办法通过以下方式更改管理员 URL使用PHP而不是使用插件或扩展 据我所知 使用第三方组件是有风险的 我真的不想在我的网站中使用第三方扩展 我怎样才能完成它 默认情况下 Joomla 管理员 U
  • 批处理文件中的 IF ELSE 语法错误?

    我是批处理文件写入的新手 我正在编写一个脚本 该脚本随机打开三个网页之一并在延迟后循环 当我运行它时 我经常遇到语法错误 但我无法确定它在哪里 main echo on set location set A num random 10 if
  • powershell - 列出本地用户及其组

    我想要一份包含所有本地用户及其相关组 用户 高级用户 管理员等 的报告 我通过这种方式获取用户 adsi ADSI WinNT adsi psbase children where psbase schemaClassName match
  • CSS 剪辑动画

    我正在尝试使用 CSS3 过渡来制作 CSS 动画clip没有成功 图像只是剪辑而没有过渡 我缺少什么 clipped position absolute width auto clip rect 100 100 100 100 webki
  • Facebook Connect 发布对话框文本?

    您好 我已经让 Facebook Connect 与功能性登录和注销按钮一起使用 另外 当我按下按钮时 我想发布到 Facebook 我可以做到这一点 有点 你看 我有一个用户事先自定义的指定字符串 它叫做 statusUpdates 我不
  • 如何让现有分支跟踪远程分支?

    我正在尝试使用以下命令跟踪现有分支到远程分支 track or set upstream to 但出现以下错误 git branch track master origin master fatal A branch named maste
  • qml 无框窗户的阴影

    我有无框主窗口 由 qml 创建 ApplicationWindow 在我的 main qml 文件中 我通过以下方式实例化 qmlQQmlApplicationEngine load Qt5 1中引入的类 如果我设置Qt Frameles
  • 深度优先搜索 (DFS) 与广度优先搜索 (BFS) 伪代码和复杂性

    我必须为计算连接数量的算法开发伪代码 给定顶点 V 和边 E 图中的分量 G V E 我知道我可以使用深度优先搜索或广度优先搜索来计算连接组件的数量 但是 我想使用最有效的算法来解决这个问题 但我不确定每个算法的复杂度 下面是用伪代码形式编
  • Xcode 8 Shell 脚本调用错误

    I m trying to fix this issue for hours but it still persists Tried everything on the forums nothing helped I m using Coc
  • C#,使用 zlib 解压缩流

    我正在尝试解压缩字节数组 byte bloc 120 156 211 97 144 76 247 142 98 228 98 0 2 70 101 6 166 8 16 131 133 131 145 129 209 134 129 133
  • shell 解析一行来查找某个标签

    我计划创建一个简单的脚本来根据属性文件中存储的值编辑文件 所以本质上我计划循环遍历原始文件中的每一行 当它遇到一行中的某个标签时 比如 它将获取该标签后面的文本 即证书 然后实现一个函数来解析属性文件获取某些值并将它们添加到原始文件中 例如
  • HTML5 的子集或约束可以完美映射到 XHTML5,反之亦然?

    我需要在 a 中表示内容通用语 也就是说 在当今时代 HTML5标准 我的目标不是在网络浏览器中显示页面 我需要代表仅有内容 没有界面 没有布局 没有逻辑 没有Javascript 正如所记得的其他问题 https stackoverflo
  • 如何枚举所有HID设备? C#

    我需要枚举连接到我的 PC 的所有 HID 设备 我尝试使用这个答案 https stackoverflow com a 3331509 902424 但它枚举了 USBHub 设备 但我在那里找不到我的 HID 设备 EDIT 我很高兴知
  • TCP recvfrom() 不存储“from”

    我正在使用 TCP 制作一个服务器程序 我想获取我刚刚收到的消息发送者的 IP 地址 这是我的代码 case FD READ Incoming data get ready to receive char buffer DEFAULT BU