Я создал простое расширение Chrome, чтобы взаимодействовать с собственным приложением Windows посредством обмена сообщениями Chrome.
Я могу отправлять и получать сообщения между браузером и приложением. Но если длина сообщения, отправленного из собственного приложения, составляет 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\":\"\"}"
(с дополнительным т), он работает нормально.
Я понятия не имею, что является причиной этой проблемы.
Пожалуйста помоги!
Спасибо!
То, как вы передаете длину данных, является неправильным и также приведет к сбою в длинных сообщениях. Вместо этого попробуйте это:
char *test = "{\"tes\":\"\"}";
unsigned int tLen = strlen(test);
cout.write((char*)&tLen , 4);
cout << test << flush;