C++ Windows 中的 RAW 套接字

2024-01-31

我想用一个RAW Socket在 Visual C++ 中。

我看到了一个函数Linux这是

int out = socket(AF_INET, SOCK_RAW, htons(ETH_P_ALL));

使用此代码linux我们可以做到这一点,但是如何在 Windows 平台上使用 RAW SOCKET,因为当我在 Visual C++ 中使用它时,我收到错误。

提前致谢。

EDIT

int out1 = socket(AF_INET, SOCK_RAW, IPPROTO_SCTP);
for (; ;)
{
    int bytesIn = recvfrom(out1, buf, 2000, 0, (sockaddr*)&server, &serverLength);
    if (bytesIn == SOCKET_ERROR)
    {
        cout << "Error Receving from Server" << WSAGetLastError() << endl;
    }
    else
    {
        cout << "MESSAGE RECV from Server " << " : " << bytesIn << endl;
    }
}

这是我接收数据包的代码


在 Windows 中,最接近的等效项是SOCK_RAW https://msdn.microsoft.com/en-us/library/windows/desktop/ms740548(v=vs.85).aspx并且您将必须使用一种技术来使您的代码跨平台兼容。

例如,使用宏并将基本通用虚拟类扩展为 Windows 派生类和 Linux 派生类,使用WS协议 https://msdn.microsoft.com/en-us/library/windows/desktop/ms741675(v=vs.85).aspx适用于 Windows 和 POSIX 库适用于 Linux。

这是有关如何使用的指南使用 Winsock 的原始套接字 https://www.binarytides.com/raw-sockets-using-winsock/。 这是一个关于的答案如何用宏识别平台 https://stackoverflow.com/questions/4605842/how-to-identify-platform-compiler-from-preprocessor-macros.

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

C++ Windows 中的 RAW 套接字 的相关文章

  • 如何检查图像对象与资源中的图像对象是否相同?

    所以我试图创建一个简单的程序 只需在单击图片框中更改图片即可 我目前只使用两张图片 所以我的图片框单击事件函数的代码 看起来像这样 private void pictureBox1 Click object sender EventArgs
  • 当我使用“control-c”关闭发送对等方的套接字时,为什么接收对等方的套接字不断接收“”

    我是套接字编程的新手 我知道使用 control c 关闭套接字是一个坏习惯 但是为什么在我使用 control c 关闭发送进程后 接收方上的套接字不断接收 在 control c 退出进程后 发送方的套接字不应该关闭吗 谢谢 我知道使用
  • 获取按下的按钮的返回值

    我有一个在特定事件中弹出的表单 它从数组中提取按钮并将标签值设置为特定值 因此 如果您要按下或单击此按钮 该函数应返回标签值 我怎样才能做到这一点 我如何知道点击了哪个按钮 此时代码返回 DialogResult 但我想从函数返回 Tag
  • Newtonsoft JSON PreserveReferences处理自定义等于用法

    我目前在使用 Newtonsoft Json 时遇到一些问题 我想要的很简单 将要序列化的对象与所有属性和子属性进行比较以确保相等 我现在尝试创建自己的 EqualityComparer 但它仅与父对象的属性进行比较 另外 我尝试编写自己的
  • C 预处理器库

    我的任务是开发源分析工具C程序 并且我需要在分析本身之前预处理代码 我想知道什么是最好的图书馆 我需要一些重量轻 便于携带的东西 与其推出自己的 为什么不使用cpp这是的一部分gcc suite http gcc gnu org onlin
  • Qt moc 在头文件中实现?

    是否可以告诉 Qt MOC 我想声明该类并在单个文件中实现它 而不是将它们拆分为 h 和 cpp 文件 如果要在 cpp 文件中声明并实现 QObject 子类 则必须手动包含 moc 文件 例如 文件main cpp struct Sub
  • 指针减法混乱

    当我们从另一个指针中减去一个指针时 差值不等于它们相距多少字节 而是等于它们相距多少个整数 如果指向整数 为什么这样 这个想法是你指向内存块 06 07 08 09 10 11 mem 18 24 17 53 7 14 data 如果你有i
  • 使用 System.Text.Json 即时格式化 JSON 流

    我有一个未缩进的 Json 字符串 例如 hash 123 id 456 我想缩进字符串并将其序列化为 JSON 文件 天真地 我可以使用缩进字符串Newtonsoft如下 using Newtonsoft Json Linq JToken
  • Github Action 在运行可执行文件时卡住

    我正在尝试设置运行google tests on a C repository using Github Actions正在运行的Windows Latest 构建过程完成 但是当运行测试时 它被卡住并且不执行从生成的可执行文件Visual
  • 如何衡量两个字符串之间的相似度? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 给定两个字符串text1 and text2 public SOMEUSABLERETURNTYPE Compare string t
  • Qt表格小部件,删除行的按钮

    我有一个 QTableWidget 对于所有行 我将一列的 setCellWidget 设置为按钮 我想将此按钮连接到删除该行的函数 我尝试了这段代码 它不起作用 因为如果我只是单击按钮 我不会将当前行设置为按钮的行 ui gt table
  • 当操作繁忙时,表单不执行任何操作(冻结)

    我有一个使用 C 的 WinForms 应用程序 我尝试从文件中读取一些数据并将其插入数据表中 当此操作很忙时 我的表单冻结并且无法移动它 有谁知道我该如何解决这个问题 这可能是因为您在 UI 线程上执行了操作 将文件和数据库操作移至另一个
  • 如何在 VBA 中声明接受 XlfOper (LPXLOPER) 类型参数的函数?

    我在之前的回答里发现了问题 https stackoverflow com q 19325258 159684一种无需注册即可调用 C xll 中定义的函数的方法 我之前使用 XLW 提供的注册基础结构 并且使用 XlfOper 类型在 V
  • 在 Dynamics CRM 插件中访问电子邮件发件人地址

    我正在编写一个 Dynamics CRM 2011 插件 该插件挂钩到电子邮件实体的更新后事件 阶段 40 pipeline http msdn microsoft com en us library gg327941 aspx 并且在此阶
  • WCF:将随机数添加到 UsernameToken

    我正在尝试连接到用 Java 编写的 Web 服务 但有些东西我无法弄清楚 使用 WCF 和 customBinding 几乎一切似乎都很好 除了 SOAP 消息的一部分 因为它缺少 Nonce 和 Created 部分节点 显然我错过了一
  • 32 位到 64 位内联汇编移植

    我有一段 C 代码 在 GNU Linux 环境下用 g 编译 它加载一个函数指针 它如何执行并不重要 使用一些内联汇编将一些参数推送到堆栈上 然后调用该函数 代码如下 unsigned long stack 1 23 33 43 save
  • 为什么我收到“找不到编译动态表达式所需的一种或多种类型。”?

    我有一个已更新的项目 NET 3 5 MVC v2 到 NET 4 0 MVC v3 当我尝试使用或设置时编译出现错误 ViewBag Title财产 找不到编译动态表达式所需的一种或多种类型 您是否缺少对 Microsoft CSharp
  • Validation.ErrorTemplate 的 Wpf 动态资源查找

    在我的 App xaml 中 我定义了一个资源Validation ErrorTemplate 这取决于动态BorderBrush资源 我打算定义独特的BorderBrush在我拥有的每个窗口以及窗口内的不同块内
  • x86 上未对齐的指针

    有人可以提供一个示例 将指针从一种类型转换为另一种类型由于未对齐而失败吗 在评论中这个答案 https stackoverflow com questions 544928 reading integer size bytes from a
  • 如何使用 std::string 将所有出现的一个字符替换为两个字符?

    有没有一种简单的方法来替换所有出现的 in a std string with 转义 a 中的所有斜杠std string 完成此操作的最简单方法可能是boost字符串算法库 http www boost org doc libs 1 46

随机推荐

  • itextsharp 添加 1 个页面模板到所有页面

    我正在 ASP Net 应用程序中动态创建 PDF 文件 数据可以从 1 页到 10 多页不等 我正在使用 PdpfTables 和 Cells 来对齐运行良好的数据 IT 正在创建页面 因为它需要新页面 唯一的问题是我无法将模板添加到所有
  • WooCommerce 根据运送国家/地区更改电子邮件收件人

    我正在尝试根据客户的送货地址将某些电子邮件动态添加到新订单收件人列表中 我们使用 PayPal Advanced 通过 iframe 处理我们网站内的付款 问题是 切换电子邮件的过滤器使用客户的送货地址 我从两个地方之一获取该地址 wooc
  • 从不同子文件夹的子文件夹相对导入python模块

    我正在尝试使用 alembic 它是 python 中的 sqlalchemy 工具 您键入命令 它会生成一个文件夹 alembic 其中包含 py 文件 里面的 py 文件需要链接到我的应用程序 位于一个名为 myapp 的单独文件夹中
  • hibernate 验证器 + jsf 2.0:UTF-8 格式的 ValidationMessages.properties

    我在以 UTF 8 格式显示 Hibernate Validator 的自定义 ValidationMessages 时遇到问题 对于常见的 jsf 消息 我遵循了以下建议 JSF 2 0 应用程序中具有 UTF 8 编码属性文件的 i18
  • 如何将 spring-boot WAR 部署到 Tomcat?

    在发布之前我已经花了很多时间在这上面 我有一个 spring boot 应用程序 可以作为 JAR 运行良好 但是当我尝试将其转换为 WAR 时 我无法部署它 我尝试寻找它的规则来决定Tomcat是嵌入式的还是外部的 WEB INF lib
  • 如何在QTextEdit中显示数学方程?

    有谁知道如何仅使用 Python 在以任何格式 TXT MathML MML LaTeX HTML XML 或任何格式 编写的 QTextEdit 中显示数学方程 即不使用像 Latex 本身这样的第 3 方包 我试图从 Qt 中找到 Ma
  • 为什么在一项测试中向量比地图更快,而在另一项测试中却不然?

    我一直被告知矢量速度很快 而在我多年的编程经验中 我从未见过任何东西可以缩短这一点 我决定 过早地优化并 编写一个关联类 它是一个围绕顺序容器的薄包装器 即 std vector并提供了相同的接口 std map 大部分代码都非常简单 我很
  • 在 Firebase 中执行多位置更新时如何使用事务?

    在我的 Firebase 数据库中 我需要同时对两个位置进行两次写入 我对这两个位置都有规则 以确保用户在不同时写入另一个位置的情况下无法在那里写入 对这些位置之一的写入需要递增 递减 当然 这必须通过事务来完成 否则我无法保证用户不会覆盖
  • 单击后禁用单选按钮

    我需要一些帮助 这是html div p match1 p teamA div
  • 抑制警告“类别正在实现一个方法,该方法也将由其主类实现”

    我想知道如何抑制警告 类别正在实现一种方法 该方法也将由 它的初级班 我有一个特定的代码类别 UIFont systemFontOfSize CGFloat fontSize return self aCustomFontOfSize fo
  • 从 C# 访问经过 SPNEGO 身份验证的 Web 服务

    我们有一个 Web 服务 通过 HTTP 提供数据并通过 SPNEGO 和单点登录 对用户进行身份验证 我们想为此 Web 服务编写一个 C 客户端 NET 中是否有任何标准 提供的方法来生成必要的令牌 广泛的谷歌搜索表明 SPNEGO 没
  • BUG:无法在 DatePicker 上选择浮动 VSTO 外接程序之外的日期

    我在这里记录了 Microsoft 的问题 Repro 可供下载 https connect microsoft com VisualStudio feedback details 741454 value change event doe
  • Laravel 5 记得我不工作

    我无法得到Laravel 记住账号功能来工作 我将记住令牌列添加到我的User型号表 我的User Model Authenticatable 用户模型不包含与 记住我 功能相关的任何其他特定内容 我正在使用默认的身份验证驱动程序和防护 M
  • Log4J2 属性替换 - 默认

    我只是想知道是否有任何方法可以为 LOG4J 中的属性替换提供默认值 我想在 java 系统属性中传递文件路径 然后将其与 env mySystemProperty 一起使用 但是如果开发者忘记设置这个属性怎么办 然后我想在 log4j2
  • 2.0.1 版本的速度滚动问题

    最新版本 Velocity 2 0 1 的更新会导致与滚动相关的问题 具体来说 会抛出以下错误消息 错误 速度 第一个参数 滚动 不是属性映射 已知操作或注册的重定向 正在流产 以下示例适用于 Velocity 1 5 https code
  • LOCK_NB在flock中是什么意思?

    什么是LOCK NBPHP 中的意思是flock命令 LOCK NB意味着非阻塞 通常当您尝试锁定文件时 您的 PHP 脚本执行将会停止 致电给flock then blocks它从恢复 它会一直这样做 直到删除所访问文件上的并发锁为止 大
  • 如何让 selenium-webdriver 忽略 Firefox 和 PhantomJS 中的 SSL 错误?

    考虑到这些节点依赖关系 chromedriver 2 24 1 cucumber 1 3 0 geckodriver 1 1 2 phantomjs prebuilt 2 1 12 selenium webdriver 3 0 0 beta
  • Eclipse 升级不工作

    我的 Eclipse 突然停止构建 Android 因此我删除了旧版本并安装了 Indigo 当我尝试导入 Android 项目时 出现以下错误 Errors occurred during the build Errors running
  • 为什么以 margin 0 auto 居中可以与 display:block 一起使用,但不能与 display:inline-block 一起使用?

    只是一个困扰我的问题 为什么以 margin 0 auto 确实可以很好地工作 display block 但当显示设置为时 div 不会居中 display inline block 感谢您的解答 我的理解如下 尽管我很高兴被纠正 内联元
  • C++ Windows 中的 RAW 套接字

    我想用一个RAW Socket在 Visual C 中 我看到了一个函数Linux这是 int out socket AF INET SOCK RAW htons ETH P ALL 使用此代码linux我们可以做到这一点 但是如何在 Wi