![]() |
Модераторы: LSD, AntonSaburov |
![]() ![]() ![]() |
|
uranpro |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 571 Регистрация: 7.5.2008 Где: Moscow city Репутация: нет Всего: 1 |
Доброго времени суток.
есть сервер на C#, который отправляет Java клиенту 4 байта: 141 40 0 0 Java клиент получает: -115 40 0 0 ? ![]() Добавлено через 2 минуты и 13 секунд PS: Байты получаются таким образом(C#): BitConverter.GetBytes((Int32)Data.Length) -------------------- I want a perfect soul |
|||
|
||||
jk1 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 1168 Регистрация: 17.10.2008 Где: Санкт-Петербург Репутация: 2 Всего: 75 |
Не вижу ничего удивительного, ведь в С# тип byte беззнаковый и имеет диапазон [0,255], в Java же ведущий бит будет интерпретирован как знак (так как byte в Java имеет диапазон [-128,127]). Вот и получается, что для чисел из диапазона [128,255] происходит неправильная интерпретация.
Если Вы хотите получать именно те числа, которые отправляете, то на клиенте прибавляйте к отрицательным числам 256. -------------------- Opinions are like assholes — everybody has one |
|||
|
||||
uranpro |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 571 Регистрация: 7.5.2008 Где: Moscow city Репутация: нет Всего: 1 |
спасибо огромное!
![]() -------------------- I want a perfect soul |
|||
|
||||
jk1 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 1168 Регистрация: 17.10.2008 Где: Санкт-Петербург Репутация: 2 Всего: 75 |
![]() Всегда пожалуйста -------------------- Opinions are like assholes — everybody has one |
|||
|
||||
uranpro |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 571 Регистрация: 7.5.2008 Где: Moscow city Репутация: нет Всего: 1 |
не подскажете еще
как видно, я отправляю Int32, клиент должен перевести из байтов в int. много гуглил и нашел вот это
но почему-то не работает =( BitConverter пишет как little-endian -------------------- I want a perfect soul |
|||
|
||||
jk1 |
|
||||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 1168 Регистрация: 17.10.2008 Где: Санкт-Петербург Репутация: 2 Всего: 75 |
Java-машина использует Big-endian представление int'a. Соответственно на клиенте надо будет применять преобразование вида
Хотя, если исходный материал - байты, то можно просто поменять порядок:
Это сообщение отредактировал(а) jk1 - 26.7.2010, 08:04 -------------------- Opinions are like assholes — everybody has one |
||||||
|
|||||||
uranpro |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 571 Регистрация: 7.5.2008 Где: Moscow city Репутация: нет Всего: 1 |
спс еще раз! очень помог!
![]() -------------------- I want a perfect soul |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Java" | |
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Java: Работа с сетью | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |