2

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

我能够在浏览器和应用程序之间发送和接收消息。但是,如果从原生应用程序发送的消息长度为 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),它工作正常。

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

请帮忙!

谢谢!

4

1 回答 1

1

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

char *test = "{\"tes\":\"\"}";
unsigned int tLen = strlen(test);
cout.write((char*)&tLen , 4);
cout << test << flush;
于 2014-07-02T17:10:35.110 回答