![]() |
Модераторы: javastic, AntonSaburov |
![]() ![]() ![]() |
|
frutty |
|
||||
Новичок Профиль Группа: Участник Сообщений: 4 Регистрация: 24.4.2009 Репутация: нет Всего: нет |
Необходимо наладить процесс обмена данными между мобильником и компьютером. Делаю через сокеты.
Мидлет:
Сервер на Delphi
До компа русский текст доходит хорошо, а вот обратно кракозябры. Испробовал очень много способов, перерыл этот и другие форумы, про readUTF я вкурсе, но это мне не подойдёт, т.к. за строкой может идти ещё какая-нибудь команда, а в readUTF нет границ считывания байт. Так вот помогите пожалуйста решить эту проблему, либо посоветуйте другой метод обмена данными (фото, файлы, текст). |
||||
|
|||||
W0LF |
|
|||
![]() alexander lonsky ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 1164 Регистрация: 9.2.2006 Где: Ukraine.Dnepropet rovsk Репутация: 19 Всего: 20 |
а кто Вас научил в стрингбуффер собирать байты от сервера?
-------------------- iOS developer |
|||
|
||||
W0LF |
|
||||
![]() alexander lonsky ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 1164 Регистрация: 9.2.2006 Где: Ukraine.Dnepropet rovsk Репутация: 19 Всего: 20 |
Сори, по ходу в примерах так делают. Просто если читаете через DataInutStream то и писать нужно с помощью DataOutputStream. в общем суть в чем - если посмотреть на исходники DataInputStream то можно увидеть, что при считывании строки, например, сначала считывается длина строки и тп, для байта - только этот байт, в общем я к чему веду - можно использовать только InputStream.
Плюс поиграйтесь с кодировками ("UTF-8" может там и не надо дописывать, мож там 1251) Это сообщение отредактировал(а) W0LF - 28.4.2009, 00:11 -------------------- iOS developer |
||||
|
|||||
math64 |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2505 Регистрация: 12.4.2007 Репутация: 8 Всего: 72 |
Телефон может не знать Cp1251
|
|||
|
||||
frutty |
|
||||||||
Новичок Профиль Группа: Участник Сообщений: 4 Регистрация: 24.4.2009 Репутация: нет Всего: нет |
что за ёптваюмать уже весь мозг кипит, что-то я вообще не врюблюсь в процесс обмена, толи в JVM какие-то необычные базовые типы данных, толи в Delphi
Мидлет
Этот код работает и на сервере принимает байт равный 12, но если отсылать тип int происходит какая-то херня, приходят непонятные числа, причём чтобы на сервере произашёл приём нееобходимо отправить данные из мидлета 2 раза
В чём может быть ошибка? Как мне организовать обмен? Есть какие-нибудь идеи? Ещё меня интересует: как отправить поток без символов конца строки, т.е. без os.write("\n".getBytes());? |
||||||||
|
|||||||||
math64 |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2505 Регистрация: 12.4.2007 Репутация: 8 Всего: 72 |
write(int b) пишет один байт в поток
writeInt(int b) пишет 4 байта в поток, но старшим байтом вперёд, а Delph ждёт младшим байтом вперёд. Где-то нужно развернуть байты - либо в Java, либо в Delphi. |
|||
|
||||
![]() ![]() ![]() |
FAQ раздела лежит здесь! |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Java ME (J2ME) | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |