查找UDP数据包的源IP/进程

2023-12-07

我在用recvfrom()在我的 C 程序中接收来自多个客户端的 UDP 数据包,这些客户端可以使用自定义用户名登录。一旦他们登录,我希望他们的用户名与唯一的客户端进程配对,这样服务器就可以根据数据包的来源自动知道用户是谁。我如何从收到的数据包中获取此信息recvfrom()?


#include <iostream>
#include <sys/socket.h>
#include <arpa/inet.h>
#include <cstring>

int main()
{
  int sock = socket(AF_INET, SOCK_DGRAM, 0);

  struct sockaddr_in addr;
  memset(&addr, 0, sizeof(addr));
  addr.sin_family = AF_INET;
  addr.sin_port = htons(1234);
  addr.sin_addr.s_addr = INADDR_ANY;

  bind(sock, reinterpret_cast<struct sockaddr*>(&addr), sizeof(addr));

  char message[256];
  struct sockaddr_in from;
  socklen_t fromLen = sizeof(from);
  recvfrom(sock, message, sizeof(message), 0, reinterpret_cast<struct sockaddr*>(&from), &fromLen);

  char ip[16];
  inet_ntop(AF_INET, &from.sin_addr, ip, sizeof(ip));

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

查找UDP数据包的源IP/进程 的相关文章

  • 为什么我需要显式编写“auto”关键字?

    我正在从 C 98 转向 C 11 并且已经熟悉了auto关键词 我想知道为什么我们需要明确声明auto编译器是否能够自动推导类型 我知道 C 是一种强类型语言 这是一条规则 但如果不显式声明变量就不可能实现相同的结果auto 放弃显式的a
  • JQuery、ASCX 和 webmethods 似乎不起作用

    我有一个级联下拉列表 其中 3 个 类型 类别和子类别 首先类型负载 然后选择类型 类别负载以及选择类别 子类别负载 我还有 2 个按钮 添加类别 和 添加子类别 单击这些按钮后 我调用 JQuery 模态表单来添加它们 我在代码后面使用
  • 不同翻译单元中字符串文字的内存地址是否相同?

    假设我们有以下 cpp 文件 include
  • 在 TPL Dataflow 中,是否可以在创建块之后但使用之前更改 DataflowBlockOptions?

    有效果吗 我想推迟设置 ExecutionDataflowBlockOptions SingleProducerConstrained 属性 直到我准备好将网络链接在一起 因为 我想将创建块及其语义与将网络及其语义链接在一起分开 但据我所知
  • 进入嵌入式[关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 使用 c11 标准和 clang 来使用 strcpy_s

    我正在运行 OS X Sierra 并尝试编译一个使用的 c 程序strcpy s 但是我安装的 clang 编译器使用的是 c99 标准 但是据我读到的 https embeddedgurus com barr code 2017 08
  • 使用 R.Net 版本 1.5.5 创建 REngine 实例

    我正在尝试创建一个 Hello World 示例R Language using R Net版本1 5 5 从 NuGet 加载 不幸的是 我见过的在线示例都不起作用 这就是我所做的 已安装Microsoft R Open 3 2 4 增强
  • 从 C# 访问 COM vtable

    C 中有没有办法访问 COM 对象的虚拟方法表以获取函数的地址 经过大量搜索和拼凑不同的部分解决方案后 我弄清楚了如何做到这一点 首先 您需要为您尝试访问的对象定义 COM 组件类 ComImport Guid InterfaceType
  • 如果我每次创建粒子时都强制重新初始化每个粒子,我是否应该使用粒子池

    我正在 XNA4 中创建一个粒子系统 但遇到了问题 我的第一个粒子系统是一个简单的粒子列表 其实例是在需要时创建的 但后来我读到了有关使用池的内容 我的第二个系统由一个充满粒子的池和一个发射器 控制器组成 我的池非常基本 这是代码 clas
  • 确定 TCP Listen() 队列中当前积压的连接数

    有没有办法找出currentLinux 上 TCP 套接字上等待 Accept 的连接尝试次数 我想我可以在每个事件循环上点击 EWOULDBLOCK 之前计算成功的 Accept 数量 但我使用的是隐藏这些细节的高级库 Python Tw
  • 保持 WebSocket 连接处于活动状态

    我正在研究 WebSocket 协议 并尝试在后端使用 Python 实现一个简单的 ECHO 服务 它似乎工作正常 但连接建立后立即断开 这是我的客户
  • IOS Box2D - 身体遵循基于速度波动的点数组的特定路径

    我有一个关于身体的问题 它遵循特定的路径 首先是将身体移动到目标点的方法 const float destinationControl 0 3f b2Vec2 targetPosition path counter b2Vec2 missi
  • ld: 无法对非 PE 输出文件执行 PE 操作错误

    我是操作系统编程的新手 我正在读一本书 其中给出了一个简单的内核示例 如下所示 main char video memory 0xb8000 video memory X 为了编译这个名为 kernel c 的文件 我在 Windows 7
  • 使用智能指针在大型对象集合中创建多个索引

    我正在为一个大型对象集合创建多个索引 即使用不同的键 对象可以改变 集合可以缩小和增长 到目前为止我的想法 保留某种指向对象的指针的多个集合 使用set代替map以获得更好的封装 使用 unordered set 可以很好地扩展大型数据集
  • 如何使用 C# 以编程方式识别对方法的引用数量

    我最近继承了需要一些修剪和清理的 C 控制台应用程序 长话短说 该应用程序由一个包含超过 110 000 行代码的类组成 是的 单个类中有超过 110 000 行 当然 该应用程序是我们业务的核心 全天候运行更新动态网站上使用的数据 尽管我
  • 如何在不加载到内存的情况下对大型 csv 文件进行排序

    我有 20GB csv 文件 如下所示 CallId MessageNo Information Number 1000 1 a 2 99 2 bs 3 1000 3 g 4 66 2 a 3 20 16 3 b 1000 7 c 4 99
  • 如何通过反射获取透明代理的属性值?

    我的代码接收透明代理而不是原始实例 虽然这var type obj GetType 产生原始类的类型 下面的代码抛出TargetException 对象与目标类型不匹配 var value property GetValue obj nul
  • 通过 C++ 标头在 C++ 和 C# 中使用枚举

    我有一个用 C 编写的服务器 位于命名管道的末端 嗯 提供服务 可以发送到服务器的命令在位于头文件中的枚举中定义 enum e doThing1 e doThing2 e doLastThing 所需枚举的值被放入发送到服务器的消息的第一个
  • TransactionScope 在某些机器上自动升级到 MSDTC?

    在我们的项目中 我们使用 TransactionScope 来确保我们的数据访问层在事务中执行其操作 我们的目标是not要求在我们的最终用户的计算机上启用 MSDTC 服务 问题是 在我们一半的开发人员机器上 我们可以在禁用 MSDTC 的
  • 删除指针后将其设为 NULL 是一个好习惯吗?

    我首先要说的是 使用智能指针 您将永远不必担心这个问题 下面的代码有什么问题 Foo p new Foo use p delete p p NULL 这是由答案和评论 https stackoverflow com questions 19

随机推荐

  • 如何“提取”类型参数来实例化另一个类

    以下 Scala 代码有效 object ReducerTestMain extends App type MapOutput KeyVal String Int def mapFun s String MapOutput KeyVal s
  • 如何使用sklearn改变混淆矩阵中方框的颜色?

    这是我生成混淆矩阵的代码片段 我想知道如何使用 sklearn 更改混淆矩阵中那些不在与热图相同的对角线中的框的颜色 nb classes 15 confusion matrix torch zeros nb classes nb clas
  • 创建变量类型列表

    我正在尝试创建某种类型的列表 我想使用列表表示法 但我只知道 System Type a 的类型是可变的 如何创建变量类型的列表 我想要类似这段代码的东西 public IList createListOfMyType Type myTyp
  • 如何在 awk 中转义单引号

    我想做以下事情 awk BEGIN FS printf s 1 但是用这种方式转义单引号是行不通的 awk BEGIN FS printf s 1 这个怎么做 感谢帮助 这可能是您正在寻找的 awk BEGIN FS printf s 1
  • 正则表达式转义双引号内的双引号

    我有一个需要解析为 JSON 的字符串 问题是 它有时可能包含双引号 导致解析错误 例如 id clients 58844 id clients name 100 test qw 我需要一个正则表达式来替换开头和结尾之间的任何双引号 wit
  • Laravel 中的模型没有 Dingo 的查询结果 - 如何在失败时做出 RESTful 响应?

    我正在使用 Laravel 创建一个基于以下内容的 API野狗API 在我的路线中 我有 Route api v1 function Route resource object My Namespace MyController 在我的控制
  • 打字稿“对象可能为‘空’”误报

    我有以下代码 isEmpty vehicle VehicleTitle return this options this options vehicle type this options vehicle type length 0 IDE
  • 为什么默认有content_main.xml和activity_main.xml而不是只有activity_main.xml?

    我刚刚开始学习Android应用程序开发 我有 Android Studio 1 4 在我的布局文件夹中 我有两个 XML 文件 content main xml and activity main xml 我使用在线教程来学习 但他们只有
  • 学习Spring框架时遇到java.lang.NoClassDefFoundError

    我一直在寻找失败的原因 但无法弄清楚 文件的结构 src com learn spring beans annotation Main java TestObject java beans annotation xml 主程序 java p
  • 自动映射器用子对象覆盖列表中缺少的源属性

    我在使用自动映射器时遇到问题 我设置了一个测试 Windows 窗体应用程序 下面是代码 另外看看每个MessageBox后面的注释 public class FirstClass public string FirstProp get s
  • 分享在 React Native android/ios 中不起作用?

    我如何共享将在反应本机移动应用程序网络浏览器中打开的 pdf 文件链接或图像链接 我添加了一个共享按钮 但是当用户单击它时 它会打开共享菜单选项 如 WhatsApp Gmail 消息等 的位置 但是当单击 WhatsApp 时 它不会发送
  • 如何确保 CFID 符合 PCI 合规性?

    由于 ColdFusion 具有可预测的 CFID 我们的 PCI 扫描一直失败 我们得到的确切失败是 可预测的 Cookie 会话 ID 现在 CFTOKEN 不再是可预测的 因为我已将 CF 配置为对 CFTOKEN 使用 UUID 但
  • Visual Studio 单元测试:dll 不受信任

    我正在努力运行一些单元测试 并想知道是否有人有任何有见地的东西 设置是我们在服务器上有一堆引用的 DLL 当我尝试执行时 我得到了旧的 测试运行部署问题 文件或目录的位置 c source ProjectName bin debug 3rd
  • 在 Bash 中重定向 stderr 和 stdout [重复]

    这个问题在这里已经有答案了 我想重定向两者标准输出 and 标准误一个进程到一个文件 我如何在 Bash 中做到这一点 看一看here 它应该是 yourcommand gt filename 它将标准输出和标准错误重定向到文件filena
  • 如何将选项卡栏控制器添加到拆分视图控制器应用程序的根视图

    我对 iPad 很陌生UISplitViewController 我需要在主视图 左视图的底部添加一个包含 3 个选项卡的选项卡栏 我为这 3 个选项卡中的每一个选项卡都有不同的视图控制器 我还没有找到任何其他在基于拆分视图的应用程序中使用
  • Asynctask状态始终显示正在运行

    我想在完成第一个任务后执行异步任务 但是 当打印第一个任务的状态时 它始终显示 正在运行 如果并行执行两个任务 则只会执行较小的任务 我在 Activity oncreate 方法中运行这两个方法 有什么想法吗 这是我的代码示例 publi
  • 在 Excel 中,如何用最后一个前面的非空白单元格填充空白单元格?

    如何用最后一个前面的非空白单元格填充空白单元格 例如 我有这个两列表 A abc dce fds B kjh abc 我想要的是 A A abc A dce A fds B B kjh B abc 我尝试了像 IF ISBLANK A2 A
  • uipickerview swift 3 中的国家/地区列表

    我用谷歌搜索如何找到国家列表并尝试实施PickerView 但我陷入了我尝试做的这一点countries count它给了我一个错误 无法将 int 类型的返回表达式转换为 string 类型的返回表达式 有什么建议么 import UIK
  • 如何在 iOS 上截取代码截图? [关闭]

    Closed 这个问题需要多问focused 目前不接受答案 如何从代码中截取屏幕截图 http www iphonedevsdk com forum iphone sdk development 2353 possible make sc
  • 查找UDP数据包的源IP/进程

    我在用recvfrom 在我的 C 程序中接收来自多个客户端的 UDP 数据包 这些客户端可以使用自定义用户名登录 一旦他们登录 我希望他们的用户名与唯一的客户端进程配对 这样服务器就可以根据数据包的来源自动知道用户是谁 我如何从收到的数据