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

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

Чат (Новых сообщений с момента вашего последнего визита нет)
Загрузка...
Задавайте ваши вопросы на форуме. Чат предназначен для небольших разговоров.
 
Ответ
 
Опции темы Опции просмотра
Старый 11.11.2010, 13:22   #41
Пользователь
 
Регистрация: 11.06.2009
Сообщений: 50
Сказал Спасибо: 1
Имеет 5 спасибок в 4 сообщенях
unknowned пока неопределено
По умолчанию

Цитата:
Сообщение от Кислый Посмотреть сообщение
как перенести тип данных bytе в си ? на ум приходит только unsigned char. Но т.к. я программирую в linux, то юникод это юникод.. и я в замешательстве.
BYTE
__________________
рукалицо.жпг
unknowned вне форума   Ответить с цитированием
Старый 11.11.2010, 18:25   #42
Admin!
 
Аватар для xkor
 
Регистрация: 04.08.2007
Сообщений: 2,360
Сказал Спасибо: 113
Имеет 1,566 спасибок в 651 сообщенях
xkor на пути к лучшему
По умолчанию

Кислый, а причем тут юникод??
__________________
Я здесь практически не появляюсь!, Skype - ikskor
xkor вне форума   Ответить с цитированием
Старый 11.11.2010, 21:30   #43
Пользователь
 
Регистрация: 14.09.2010
Сообщений: 38
Сказал Спасибо: 5
Имеет 0 спасибок в 0 сообщенях
Кислый пока неопределено
По умолчанию

ошибсо

Добавлено через 9 минут
функции mpz_inp_str(d, sD, 10); в sD нужен ноль на конце ?

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

Цитата:
Сообщение от Кислый Посмотреть сообщение
функции mpz_inp_str(d, sD, 10); в sD нужен ноль на конце ?
а в числе 10000 нужен ноль на конце?)
__________________
Я здесь практически не появляюсь!, Skype - ikskor
xkor вне форума   Ответить с цитированием
За это сообщение xkor нажился спасибкой от:
Старый 17.11.2010, 13:21   #45
Пользователь
 
Регистрация: 14.09.2010
Сообщений: 38
Сказал Спасибо: 5
Имеет 0 спасибок в 0 сообщенях
Кислый пока неопределено
По умолчанию

есть вопросы, и я спешу сюда ))

после организации сокета, приходит пакет инит.

обычно он приходит в виде (неразкодированном)
Код:
Сервер, Length: 186 (0xBA)
*-------------------------------------------------------*
0x0000| BA 00 98 F5 02 E1 91 09 D9 CF D8 90 6F 69 58 91 
0x0010| 63 32 84 C4 80 43 CF 23 B6 C2 D0 7B EE 53 01 7A 
0x0020| 44 A2 11 B4 4B E4 DC 31 5F 69 53 D5 08 8A 54 00 
0x0030| 8A 1C D3 94 6F EB C3 FA 9E 00 68 1C 34 8B 71 2C 
0x0040| 9B 3C CF 09 C3 2D F5 68 3C 99 EE 4B 09 15 B7 6E 
0x0050| 9F 36 94 27 69 B7 38 2C 0C C3 F1 DD 1C B8 AD 99 
0x0060| BC A6 92 99 DD BD 4E 8F 0F 36 95 1E 0C 60 ED 83 
0x0070| BC 49 7F B5 24 51 8E 26 C5 99 5C 1F FB ED CB 0F 
0x0080| BB 66 A4 E6 F7 6B 0C 4C E1 B5 7B 51 65 6B C4 FE 
0x0090| 06 B7 27 E9 F6 AF 4A E3 49 EE EC BD 25 4D 9C BC 
0x00A0| 71 48 11 31 C1 82 83 7E C1 5A 62 1C 59 72 77 D0 
0x00B0| 29 59 D4 E4 8D F3 B3 3F A4 B3
у меня же
Код:
kisly@kisly-desktop:~/c++/sock1/bin/Debug$ ./sock1 95.211.81.129 2106
Установлено соединение с 95.211.81.129:2106
От сервера получено: � 186
Сервер, Length:  186 (0xBA)
 -- -- -- -- -- -- -- 

0x0000|  FFFFFFBA  00  FFFFFFE3  FFFFFFB5  1B  FFFFFFB4  FFFFFFED  38  FFFFFFCA  FFFFFF83  FFFFFF8A  FFFFFF94  72  FFFFFFCB  52  33 
0x0010|  FFFFFFC3  FFFFFFB7  FFFFFFC2  FFFFFF8E  6D  FFFFFF9B  7A  68  12  FFFFFF99  FFFFFF9F  FFFFFFF2  08  0D  FFFFFFD7  FFFFFF9E 
0x0020|  5B  FFFFFF86  FFFFFFAE  FFFFFFA4  FFFFFFB3  7A  FFFFFFE0  FFFFFFC3  FFFFFF87  6F  FFFFFFC3  58  FFFFFFFF  FFFFFFB9  FFFFFFD0  FFFFFF9D 
0x0030|  1A  22  FFFFFFE7  77  67  FFFFFFD4  FFFFFFEC  13  12  FFFFFFC4  FFFFFFFC  17  FFFFFFC3  FFFFFFD3  78  6A 
0x0040|  3E  17  FFFFFF8F  6D  FFFFFFFA  FFFFFF81  18  FFFFFF82  FFFFFF91  FFFFFF89  FFFFFFF1  FFFFFFF4  FFFFFF89  FFFFFFB5  FFFFFFF2  52 
0x0050|  FFFFFF89  FFFFFFE7  10  7C  29  FFFFFFE7  FFFFFFCE  FFFFFFEF  FFFFFFC3  FFFFFF9F  0A  2E  FFFFFFD2  57  3A  FFFFFFB2 
0x0060|  FFFFFFD4  FFFFFF97  69  2A  28  FFFFFFB4  49  FFFFFFA4  FFFFFFD7  6F  6A  5B  47  72  57  FFFFFFBC 
0x0070|  FFFFFFBD  FFFFFFAF  21  FFFFFFC7  FFFFFFEE  69  FFFFFFFD  FFFFFFED  0D  FFFFFFBE  09  77  11  FFFFFF93  23  FFFFFFFB 
0x0080|  FFFFFFB7  37  39  FFFFFF91  FFFFFFFA  FFFFFFB4  FFFFFFB3  67  62  5B  FFFFFFC7  0E  52  FFFFFFAC  FFFFFFAC  21 
0x0090|  0B  41  4F  76  34  58  68  FFFFFFCD  0F  0F  7B  FFFFFF8D  FFFFFF94  FFFFFFE1  FFFFFFFF  FFFFFFDF 
0x00A0|  FFFFFFF5  FFFFFFF6  FFFFFFCC  FFFFFFE9  FFFFFFD1  FFFFFFA2  FFFFFFE2  FFFFFF93  FFFFFFA9  FFFFFFA2  19  79  6B  FFFFFFD6  FFFFFFED  FFFFFF9E 
0x00B0|  FFFFFFF0  FFFFFFD9  30  68  FFFFFFDA  FFFFFFBA  FFFFFFEC  FFFFFFFA  15  FFFFFF88  00  5B  FFFFFF9D  FFFFFFD3  FFFFFFA5  44
прикладываю функцию view_pkt вынесенную в отдельный проэкт
http://depositfiles.com/files/falvz67jk
не могу понять, уз-за чего появляются 6xF ?
Кислый вне форума   Ответить с цитированием
Старый 17.11.2010, 13:27   #46
Местный
 
Аватар для 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   #47
Пользователь
 
Регистрация: 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   #48
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 вне форума   Ответить с цитированием
Старый 17.11.2010, 20:55   #49
Пользователь
 
Регистрация: 14.09.2010
Сообщений: 38
Сказал Спасибо: 5
Имеет 0 спасибок в 0 сообщенях
Кислый пока неопределено
По умолчанию

o_0 я поменял тип переменной для буфера сообщений ( и в main, и в view_pkt) на unsigned char
Кислый вне форума   Ответить с цитированием
Старый 18.11.2010, 00:24   #50
Admin!
 
Аватар для xkor
 
Регистрация: 04.08.2007
Сообщений: 2,360
Сказал Спасибо: 113
Имеет 1,566 спасибок в 651 сообщенях
xkor на пути к лучшему
По умолчанию

Кислый, видишь сколько способов решения одной и той же проблемы)
__________________
Я здесь практически не появляюсь!, Skype - ikskor
xkor вне форума   Ответить с цитированием
Ответ

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



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

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


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

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

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