Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

искажение принятых данных (UDP)

25K
25 февраля 2007 года
Natalya
1 / / 21.02.2007
Добрый день! У меня такая проблема (помогите, пожалуйста, ее решить):
по UDP передается сообщение (192 Байта). В виде заголовка передаются нек. параметры (12 Байт).
Код:
//это заголовок, про который я говорю
typedef struct C_Header
{
          unsigned char id_rc;
          unsigned short len_data;
          unsigned int num_pack;
          unsigned int rsrv;
} C_Header;

...

//формирую данные для отправки
char buf1[192];
     C_Header c_hdr;
     char *ptr=NULL;
     ZeroMemory(buf1,204);
     ptr=buf1;

     c_hdr.id_rc=0x44;
     c_hdr.len_data=204;
     c_hdr.num_pack=90542;
     c_hdr.rsrv=0;

     memcpy(ptr,&c_hdr,sizeof(c_hdr));
     ptr+=sizeof(c_hdr);

     AnsiString str;
     str="RC ID:";
     str+=c_hdr.id_rc;
     str+="Length packet:";
     str+=c_hdr.len_data;
     str+="Number packet:";
     str+=c_hdr.num_pack;
     memcpy(ptr,str.c_str(),str.Length());
     IdUDPServer->SendBuffer("127.0.0.1",31210,buf1,204);
 .....


Вопрос: на приемной стороне искажаются данные заголовка:
"DшМ ®a" - вот таким стал заголовок;
RC ID:68Length packet:204Number packet:90542 - а само сообщение в порядке.
Может я как-то неправильно структуру в буфер пишу? Пыталась через TMemoryStream - то же самое, так до кучи еще и сообщение стало таким же.
Спасибо!
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог