如何从 Chrome 扩展程序向本机应用程序发送消息?

2024-01-03

我有一个用 C++ 编写的本机应用程序。

我可以使用以下命令将数据从本机应用程序发送到 chrome 扩展如何从本机应用程序向 Chrome 扩展程序发送消息? https://stackoverflow.com/questions/18134665/how-to-send-message-from-native-app-to-chrome-extension

但我无法找出其他方法。

Chrome 文档。状态 :Chrome 在单独的进程中启动每个本机消息传递主机,并使用标准输入 (stdin) 和标准输出 (stdout) 与其进行通信。双向发送消息使用相同的格式:每条消息均使用 JSON、UTF-8 编码进行序列化,并以本机字节顺序显示 32 位消息长度。


正如有人在评论中提到的,如果出现以下情况,提供的解决方案将不起作用长度大于255。例如,如果实际长度为 296(二进制 00000001 00101000),前面提出的解决方案将产生 41 => 00000001 + 00101000 = 1 + 40 = 41。

必须考虑读取的字节数。在此示例中,计算长度的正确方法是 1*(2^8) + 40 = 296。因此正确的解决方案可能是:

unsigned int length = 0;

//read the first four bytes
for (int i = 0; i < 4; i++) {
  int read_char = getchar();
  length += read_char * (int) pow(2.0, i * 8);
}

更好的解决方案基于位移位和位运算如下所示(可能有点难理解,但肯定更简洁):

unsigned int length = 0;

for (int i = 0; i < 4; i++) {
  unsigned int read_char = getchar();
  length = length | (read_char << i * 8);
}

值得注意的是,getchar() 返回的 int 在与当前长度值执行位 OR 之前会转换为 unsigned int(int 保留了一位用于符号,unsigned int 则没有)。

现在,我不确定此处可能出现的潜在大/小端问题,因为我尚未在不同的体系结构上测试此解决方案。希望有更多经验的人能够评论一下。

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

如何从 Chrome 扩展程序向本机应用程序发送消息? 的相关文章

  • WritePrivateProfileString 未在末尾添加属性

    我正在使用以下命令在 ini 文件中写入一些属性WritePrivateProfileString函数并且一切正常 但是当我添加多行文本时 出现了问题 这是代码和输出 WritePrivateProfileString T General
  • 当 TestCase 包含数组时,NUnit 无法识别该 TestCase

    这是我在 NUnit 中遇到的非常简单但烦人的行为 我有一些这样的测试 Test TestCase 1 2 hello TestCase 3 5 goodbye public void MyClass MyMethod int a int
  • 我是否必须使用我的数据库训练 Viola-Jones 算法才能获得准确的结果?

    我尝试提取面部数据库的面部特征 但我认识到 Viola Jones 算法在两种情况下效果不佳 当我尝试单独检测眼睛时 当我尝试检测嘴巴时 运作不佳 检测图像的不同部分 例如眼睛或嘴巴 或者有时会检测到其中几个 这是不可能的情况 我使用的图像
  • 验证码怎么写?

    我正在开发一个注册表 我想放置验证码 我生成一个随机字符串 但如何将其转换为图像 否则我如何开发验证码或任何参考 谢谢 Try out 验证码 http recaptcha net plugins aspnet 或查看博客文章 使用 Asp
  • 如何在 ASP.NET 5/vNext/Core 中使用 Elmah?

    我对如何在 ASP NET 5 MVC 6 项目中使用 Elmah 有点困惑 我从 nuget 得到了包 它添加了 Elmah Mvc 2 1 2 到project json 中的依赖项 我不知道从这里到哪里去 以前 nuget 会向 we
  • Collection.Contains() 使用什么来检查现有对象?

    我有一个强类型的自定义对象列表 MyObject 它有一个属性Id 以及一些其他属性 假设Id of a MyObject将其定义为唯一 我想检查我的收藏是否还没有MyObject对象有一个Id在我添加新的之前 共 1 个MyObject到
  • 无法运行bjam编译boost python教程

    我正在尝试跟随本教程 http www boost org doc libs 1 55 0 libs python doc tutorial doc html python hello html关于为 Windows 的 python 包装
  • 在大型数据绑定 ObservableCollection 中添加/删除许多项目,而无需冻结 GUI

    我和我的团队正在开发一个 WPF 应用程序 该应用程序显示多个并发 XamDataChart 控件 由 Infragistics 提供 每个图表都绑定到不同的 ObservableCollection 最多可包含 200 万个点 对于每个图
  • 是否可以在三元表达式上只放置一个选项?

    我只是好奇这是否可能 或者是否有办法使它成为 C 的有效语法 expression value do nothing here or put some empty block like SomeClass SomeMethod Edit 为
  • GCC 和 -Wconversion

    让我们编译以下程序 int main uint16 t data 0 data uint16 t std round 3 14f return 0 with g Wconversion prog cpp 我们会得到warning conve
  • 如何在 MSBuild NuGet 包生成的 .nuspec 中注入自定义依赖项

    我正在尝试迁移到使用 MSBuildPack支持使用 csproj 生成项目 NuGet 包 其中在开发过程中使用本地 dll 来构建项目 但在使用 MSBuild 打包 项目时需要替换 交换它们以引用生成的 nuspec 中的外部 NuG
  • 如何存储将被多个不同类访问的字符串常量? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 关于堆栈溢出有太多不同的答案 声明一个命名空间 并在 hpp 文件中将所有字符串标记为 extern const 并在 cpp 文件中放置它们的
  • 最佳实践:从属性中抛出异常

    什么时候适合从属性 getter 或 setter 中抛出异常 什么时候不合适呢 为什么 关于这个主题的外部文档的链接会很有帮助 谷歌搜索结果出奇的少 Microsoft 在以下位置提供了有关如何设计属性的建议 http msdn micr
  • STL(标准模板库)中使用的设计模式

    我正在学习STL和设计模式 我想知道是否有任何文档或链接可以解释如何在 STL 中实现设计模式 我做了谷歌但无法获得太多数据 我希望你的意思是 哪些设计模式可以在STL中识别 STL 堆栈是一个容器适配器 适配器是一种设计模式 迭代器也是一
  • 如何使用 Xamarin 应用程序开发自动注销

    我必须在 App xaml cs 上添加功能才能使其正常工作 我在 OnStart 上添加了功能 但现在它会间歇性地一次又一次地将我从应用程序中注销 根据下面的代码 我需要做什么才能让它停止这样做 或者我的代码有问题 这是我最新的代码 na
  • 将 KeyUp 作为参数传递 WPF 命令绑定文本框

    我有一个文本框 KeyUp 事件触发器连接到 WPF 中的命令 我需要将按下的实际键作为命令参数传递 该命令执行得很好 但处理它的代码需要知道按下的实际键 记住这可能是一个回车键或不仅仅是一个字母的任何键 所以我无法从 TextBox te
  • 在C中更改函数内的数组

    我正在学习 C 并且很困惑为什么在 main 中创建的数组不会在函数内部更改 我假设传递的数组是一个指针 并且更改指针应该更改数组 对吧 有人可以解释这种情况下发生了什么吗 谢谢你的帮助 int main int i length 10 i
  • 在 asp.net MVC 控制器中调用异步外部 Web 服务

    在 Asp net MVC 控制器 GET 方法 中 我调用外部 Web 服务 用于 IP 地理定位 返回 IP 位置的 json 数据 如何使调用异步 以便堆栈可以在等待服务响应时继续 当 GEO IP 请求完成后 我希望能够更新数据库
  • 使用 JSON.NET 反序列化一些 JSON

    我对 JSON 非常陌生 我需要解析 API 提供的一些内容 谷歌快速搜索出现了JSON NET http james newtonking com pages json net aspx 所以我现在尝试使用它将此 JSON 解析为列表对象
  • 为什么在嵌套类上调用方法时不调用父类的静态构造函数?

    给出以下代码 为什么在 Main 的第一行之后没有调用 Outer 的静态构造函数 namespace StaticTester class Program static void Main string args Outer Inner

随机推荐

  • 检查用户输入是否在txt文件中,使用批处理

    我正在为局域网联网计算机批量制作聊天风格的系统 我想检查用户名是否被占用 如果不允许 我如何检查用户在这一行中输入的内容 set p name2 我已经在测试文件中尝试过这个 但无法让它工作 startup set fail set nam
  • findOne 可以工作,但不能获取全部/查找

    findOne 工作正常 db collection updates function err collection collection findOne author req user id function err doc 我正在尝试获
  • getaddrinfo,我没有得到任何 canonname

    我正在尝试读取有关特定主机的所有信息并打印出所有信息 我可以读取并打印出所有地址 但我没有读取任何 ai canonname 首先 我认为我的示例 www google com www irs gov 没有规范名称 但过了一会儿我发现我根本
  • 如何从控制器中包含的模块渲染js模板?

    我在控制器关注点中有一个操作 该操作包含在控制器中 此操作不会呈现在 respond to 块下指定的 js erb 文件 如何正确获取控制器关注点中的操作以成功呈现 js erb 文件 或任何视图 是我的路线有问题吗 模块操作的链接 li
  • String 子字符串在 Swift 中如何工作

    我一直在使用 Swift 3 更新一些旧代码和答案 但是当我使用 Swift 字符串和子字符串索引时 事情变得令人困惑 具体来说 我正在尝试以下操作 let str Hello playground let prefixRange str
  • SVN:创建文件夹的转储文件

    我正在尝试在 SVN 存储库中创建文件夹的转储文件 我的目标是将此转储导入另一个存储库 但那是另一个故事 我读了大概 20 页关于这个的内容 他们都告诉我要使用svndump过滤器 http svnbook red bean com en
  • wkhtmltopdf 每次运行都会生成不同的校验和

    我试图验证从运行到运行时从 wkhtmltopdf 生成的内容是否相同 但是每次运行 wkhtmltopdf 时 我都会针对同一页面获得不同的哈希 校验和值 我们正在谈论一些真正基本的东西 比如使用以下 html 页面 p This is
  • Azure 虚拟机上的 HTTPS

    我正在将我们的网站迁移到 Azure 并在 Windows Server 2012 VM 上运行 我已从 GoDaddy 购买了通配符 SSL 证书 并且已在虚拟机上安装和配置了它 我还配置了 IIS 以利用此证书来处理端口 443 上的所
  • 如何删除数据框中空值数量超过 x 的行? [复制]

    这个问题在这里已经有答案了 我正在尝试删除数据框中具有超过 7 个空值的行 请提出一些有效的方法来实现这一目标 如果我理解正确的话 只有当一行中的 nan 总数超过时 才需要删除行7 df df df isnull sum axis 1 l
  • 使用什么 Java 异常类来处理 HTTP 错误?

    我正在使用阿帕奇Http客户端 http hc apache org httpclient 3 x 并且希望通过 Java 异常机制向调用代码传达 HTTP 错误 400 错误请求 404 未找到 500 服务器错误等 Java 标准库或广
  • WebSockets 版本之间的协议差异是什么?

    是否有任何地方的摘要协议差异各种 WebSockets 草案之间的关系 浏览器支持级别仍然遍布各处 因此仅考虑 RFC 是不够的 显然 Sec WebSocket Version 发生了变化 而且我知道早期的格式非常不同 然而 我指的是协议
  • Angular 9 Google 地图 API 地点自动完成

    我有一个 Angular 9 刚刚从 8 迁移 我需要使用 Google Places API 我有一个 API 密钥 进行地址自动完成 我可以使用 angular googlemaps 库显示地图 但我无法制作自动完成工作 我尝试使用ht
  • 使用 libvlc 将相机流式传输到内存并显示帧

    我正在尝试使用 libvlc 将捕获设备 相机 流式传输到内存中 我无法显示内存中存储的数据的图像 内存内容看起来没问题 我使用 Visual Studio 及其内存窗口检查了它 imshow 创建的图片始终是灰色的 如何显示内存中存储的图
  • jquery按钮不响应click方法

    所以我使用append方法用jquery动态渲染一个段落 我想向它添加一个点击事件 但由于某种原因 点击事件不起作用 我知道解决方案可能很简单 但我是jquery的新手 我会很感激任何帮助 我知道函数内部的代码可以工作 因为我用静态按钮测试
  • 什么是数据对齐?在 C 中类型转换指针时,为什么以及何时应该担心? [复制]

    这个问题在这里已经有答案了 我找不到一个像样的文档来解释对齐系统如何工作以及为什么某些类型比其他类型更严格地对齐 我会尝试简短地解释一下 什么是数据对齐 计算机的体系结构由处理器和内存组成 记忆是按细胞组织的 因此 0x00 data 0x
  • StackExchange 站点如何关联用户帐户和 OpenID 登录信息?

    我喜欢 StackExhchange StackOverflow 集成 OpenID 的方法 据我了解 这个过程是这样的 如果用户向 OpenID 提供商 即 Google 注册 StackOverflow 或类似网站 会为该用户创建一个帐
  • Python 类中的线程

    我最近开始使用python的线程模块 经过一番尝试和错误后 我设法使用大多数教程中给出的以下示例代码来使基本线程工作 class SomeThread threading Thread def init self count threadi
  • 2021年8月18日SDK更改后如何从代码中设置azure实验名称?

    2021 年 8 月 18 日 Microsoft 为了我们的方便 对其 Azure ML SDK 进行了以下更改 https learn microsoft com en us azure machine learning azure m
  • JSF 注释不适用于 Spring-boot

    我曾试图使用来自Spring Boot 和 JSF Primefaces Richfaces https stackoverflow com questions 22544214 spring boot and jsf primefaces
  • 如何从 Chrome 扩展程序向本机应用程序发送消息?

    我有一个用 C 编写的本机应用程序 我可以使用以下命令将数据从本机应用程序发送到 chrome 扩展如何从本机应用程序向 Chrome 扩展程序发送消息 https stackoverflow com questions 18134665