Программинг Форум для тем связанных с программированием
11.11.2010, 13:22
#41
Пользователь
Регистрация: 11.06.2009
Сообщений: 50
Сказал Спасибо: 1
Имеет 5 спасибок в 4 сообщенях
Цитата:
Сообщение от
Кислый
как перенести тип данных bytе в си ? на ум приходит только unsigned char . Но т.к. я программирую в linux, то юникод это юникод.. и я в замешательстве.
BYTE
__________________
рукалицо.жпг
11.11.2010, 18:25
#42
Admin!
Регистрация: 04.08.2007
Сообщений: 2,360
Сказал Спасибо: 113
Имеет 1,566 спасибок в 651 сообщенях
Кислый , а причем тут юникод??
__________________
Я здесь практически не появляюсь!, Skype - ikskor
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!
Регистрация: 04.08.2007
Сообщений: 2,360
Сказал Спасибо: 113
Имеет 1,566 спасибок в 651 сообщенях
Цитата:
Сообщение от
Кислый
функции mpz_inp_str(d, sD, 10); в sD нужен ноль на конце ?
а в числе 10000 нужен ноль на конце?)
__________________
Я здесь практически не появляюсь!, Skype - ikskor
За это сообщение 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
Местный
Регистрация: 29.04.2008
Сообщений: 830
Сказал Спасибо: 80
Имеет 230 спасибок в 169 сообщенях
Оффтоп
Цитата:
Сообщение от
dyh9l
хех, а я вобще в кодировании нечего не понимаю почти) мучаю Breadfan'a чтоб научил меня немножко)
Да я вообще не программист...Я слесарь вообще-то
Это просто есть у меня знакомый дядя Миша...
__________________
На фразы в аську типа "слух карочь 1)как точить 2)как раскачаться за 5 мин" - игнор. ИМХО идиотизм
Дай голодному рыбу - он будет один день сыт. Покажи ему, как удить рыбу - он пошлёт тебя и скажет, что у него есть более интересные занятия, чем забрасывать снасти в воду
David Kastrup @ de.comp.text.tex.
"Приобретенные навыки общения с маленькими детьми - сильно упрощают взаимопонимание на форумах..."
А вы знаете, что для качественной сварки - место шва нужно протереть спиртом?
Последний раз редактировалось Breadfan, 17.11.2010 в 13:29 .
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!
Регистрация: 04.08.2007
Сообщений: 2,360
Сказал Спасибо: 113
Имеет 1,566 спасибок в 651 сообщенях
Кислый , боже что это?! Как оно должно работать?!
Короче исправь это:
Код:
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 .
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!
Регистрация: 04.08.2007
Сообщений: 2,360
Сказал Спасибо: 113
Имеет 1,566 спасибок в 651 сообщенях
Кислый , видишь сколько способов решения одной и той же проблемы)
__________________
Я здесь практически не появляюсь!, Skype - ikskor
Опции темы
Опции просмотра
Линейный вид
Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
Часовой пояс GMT +4, время: 20:31 .
vBulletin style designed by
MSC Team .
Powered by vBulletin® Version 3.6.11
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод:
zCarot
Вы хотите чувствовать себя в безопасности? чоп Белган обеспечит её!