c++ - 无法使用 native 消息接收 10 字节的消息

标签 c++ google-chrome google-chrome-extension chrome-native-messaging

我创建了一个简单的 chrome 扩展,以便通过 chrome 原生消息传递与 windows 原生应用程序交互。

我能够在浏览器和应用程序之间发送和接收消息。但是,如果从 native 应用程序发送的消息长度为 10 或 2560,则该消息不会在扩展的 onmessage 事件监听器中接收。

原生应用代码

char *test = "{\"tes\":\"\"}";
unsigned int tLen = strlen(test);
cout<< char(((tLen>>0) & 0xFF))
    << char(((tLen>>8) & 0xFF))
    << char(((tLen>>16) & 0xFF))
    << char(((tLen>>24) & 0xFF));
cout << test << flush;

如果我分配 char *test = "{\"test\":\"\"}"(带有额外的 t),它工作正常。

我不知道这个问题的原因是什么。

请帮忙!

谢谢!

最佳答案

您传递数据长度的方式不正确,并且在长消息上也会失败。相反,试试这个:

char *test = "{\"tes\":\"\"}";
unsigned int tLen = strlen(test);
cout.write((char*)&tLen , 4);
cout << test << flush;

关于c++ - 无法使用 native 消息接收 10 字节的消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24527989/

相关文章:

c++ - 如何将 XML 节点转换为 C++ 结构?

c++ - 在不删除的情况下将字符串拆分为具有多个分隔符的多个字符串?

javascript - 禁用弹出窗口并调用 browserAction.onClicked

javascript - Do/While XMLHttpRequest 将所有调用的结果添加到一个数组

javascript - Chrome 扩展程序 : Refused to execute inline script, 但不存在内联脚本?

c++ - 如何访问嵌套类

c++ - 同时重新排序和旋转图像的高效方法

javascript - CHROME中的自调用函数未捕获到TypeError

javascript - 即使没有 DOM 断点,Chrome 调试器也会在一个函数处停止

javascript - 如何删除页面上的所有 <wbr> 标签