
02.03.2013, 01:09
|
|
Регистрация: Nov 2010
Сообщений: 497
|
Вижу точно одну ошибку и одну потенциальную ошибку.
Точно ошибка в том, что вы нулевой байт не посылаете в конце сообщения. char * не может содержать нулевого байта по определению. Это байт-терминатор. Так что все, что работает с этим char * (без явного указания длины) не воспринимает ваш \0 как часть строки. Поставьте \0 в начале и наслаждайтесь debug(). Как правильно сделать - не скажу, не пишу на С++ и документацию лень искать. Наверное, где-то в ней должно быть написано, как отдельные байты посылать.
Потенциальная ошибка. char != byte. А вот flash-player, вероятно, ждет все в UTF-8 (не проверял, может быть, заголовок xml корректно понимает). В какой кодировке socket->write пишет? А вдруг там utf-16? Или этот write ожидает byte */void * (и пишет байты) а при этом у вас char 16-битный или даже 32-битный? По-хорошему, нужно либо сразу работать с байтами, либо кодировать/декодировать текстовую строку в правильный байтовый буфер.
|