Вернуться   CoderX :: Forums > Основные форумы > Программинг
Войти через OpenID

Программинг Форум для тем связанных с программированием

Чат (Новых сообщений с момента вашего последнего визита нет)
Загрузка...
Задавайте ваши вопросы на форуме. Чат предназначен для небольших разговоров.
 
Ответ
 
Опции темы Опции просмотра
Старый 14.10.2010, 00:45   #1
Местный
 
Регистрация: 11.06.2010
Сообщений: 644
Сказал Спасибо: 119
Имеет 85 спасибок в 77 сообщенях
dyh9l пока неопределено
По умолчанию

хех, а я вобще в кодировании нечего не понимаю почти) мучаю Breadfan'a чтоб научил меня немножко)
dyh9l вне форума   Ответить с цитированием
Старый 17.11.2010, 13:27   #2
Местный
 
Аватар для Breadfan
 
Регистрация: 29.04.2008
Сообщений: 830
Сказал Спасибо: 80
Имеет 230 спасибок в 169 сообщенях
Breadfan пока неопределено
По умолчанию

Оффтоп
__________________
На фразы в аську типа "слух карочь 1)как точить 2)как раскачаться за 5 мин" - игнор. ИМХО идиотизм
Дай голодному рыбу - он будет один день сыт. Покажи ему, как удить рыбу - он пошлёт тебя и скажет, что у него есть более интересные занятия, чем забрасывать снасти в воду
David Kastrup @ de.comp.text.tex.
"Приобретенные навыки общения с маленькими детьми - сильно упрощают взаимопонимание на форумах..."

А вы знаете, что для качественной сварки - место шва нужно протереть спиртом?

Последний раз редактировалось Breadfan, 17.11.2010 в 13:29.
Breadfan вне форума   Ответить с цитированием
Старый 17.11.2010, 15:54   #3
Пользователь
 
Регистрация: 14.09.2010
Сообщений: 38
Сказал Спасибо: 5
Имеет 0 спасибок в 0 сообщенях
Кислый пока неопределено
По умолчанию

это здорово! а по существу ?

Добавлено через 14 минут
так я догнал, что это отрицательное число так представлятся либо если оно превышает значение переменной

тогда вопрос к xkor, как человеку который собаку сьел на этом )), данные какого типа приходят от сервера ? Byte(char), Integer(int), Word(long) ?

Добавлено через 57 минут
и еще, первый байт приходит, как 186 (BA) или как -70 ?

Добавлено через 51 минуту
я, блин, невнимательный ((
забыл что Byte это unsined char

Последний раз редактировалось Кислый, 17.11.2010 в 15:54. Причина: Добавлено сообщение
Кислый вне форума   Ответить с цитированием
Старый 17.11.2010, 17:53   #4
Admin!
 
Аватар для xkor
 
Регистрация: 04.08.2007
Сообщений: 2,360
Сказал Спасибо: 113
Имеет 1,566 спасибок в 651 сообщенях
xkor на пути к лучшему
По умолчанию

Кислый, боже что это?! Как оно должно работать?!
Короче исправь это:
Код:
void view_pkt(char buff[], int len, int from_server)
{
    //var
    int lines, i, i1;
    char s[256];

    if (from_server){strcpy(s, "Сервер");}
    else            {strcpy(s, "Клиент");}

    sprintf(s, "%s, Length:  %d (0x%.*X)\n", s, len, 2, len);

    ToLog(s);
    ToLog(" -- -- -- -- -- -- -- \n");
    //view_pkt
    lines = len / 16;
    int mod = len % 16;
    int il  = i1 + i *16;
    if (mod>0) { lines++ ;}
    for (i = 0; i < lines; i++)
    {
        sprintf(s, "\n0x%.*X| ", 4, 16*i);
        for (i1 = 0; i1 < 16; i1++)
            {
                if (il >= len)
                    {
                        sprintf(s, "%s ", s);
                    }
		else sprintf(s, "%s %.*X", s, 2, buff[i1+16*i]);
		sprintf(s, "%s ", s);
	    }
	ToLog(s);
    }
    ToLog("  \n");
}
на это:
Код:
char * StringToHex(char * s, int len)
{
  char *ahex = "0123456789ABCDEF";
  char *r = new char[len*3+3];

  for(int i=0; i<len; i++){
    r[i*3]=ahex[(((UINT8)s[i]) >> 4) & 0xf];
    r[i*3+1]=ahex[((UINT8)s[i]) & 0xf];
    r[i*3+2]=' ';
  }
  r[len*3]='\r';
  r[len*3+1]='\n';
  r[len*3+2]=0;
  return r;
}

void view_pkt(char buff[], int len, int from_server)
{
    //var
    int lines, i, i1;
    char s[256];

    if (from_server){strcpy(s, "Сервер");}
    else            {strcpy(s, "Клиент");}

    sprintf(s, "%s, Length:  %d (0x%.*X)\n", s, len, 2, len);

    ToLog(s);
    ToLog(" -- -- -- -- -- -- -- \n");
    //view_pkt
    lines = len / 16;
    int mod = len % 16;
    int il  = i1 + i *16;
    if (mod>0) { lines++ ;}
    for (i = 0; i < lines; i++)
    {
        if((mod>0)&&(i+1==lines))
          sprintf(s, "\n0x%.*X| %s", 4, 16*i, StringToHex(&buff[16*i],mod));
        else
          sprintf(s, "\n0x%.*X| %s", 4, 16*i, StringToHex(&buff[16*i],16));
	ToLog(s);
    }
    ToLog("  \n");
}
ну или как ты сам написал
sprintf(s, "%s %.*X", s, 2, buff[i1+16*i]);
на
sprintf(s, "%s %.*X", s, 2, (unsined char)buff[i1+16*i]);
__________________
Я здесь практически не появляюсь!, Skype - ikskor

Последний раз редактировалось xkor, 17.11.2010 в 17:55.
xkor вне форума   Ответить с цитированием
Ответ

  CoderX :: Forums > Основные форумы > Программинг


Опции темы
Опции просмотра
Комбинированный вид Комбинированный вид

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Часовой пояс GMT +4, время: 02:04.

vBulletin style designed by MSC Team.
Powered by vBulletin® Version 3.6.11
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Locations of visitors to this page
Rambler's Top100

Вы хотите чувствовать себя в безопасности? чоп Белган обеспечит её!