![]() |
|
Модераторы: LSD, AntonSaburov |
![]()
|
|
| knave |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 320 Регистрация: 6.3.2003 Где: Санкт-Питербург ( Россия) Репутация: нет Всего: 5 |
Делаю апплет (JBilder 2006) который принимает данные по сети через TCP от программы напсанной на С.
В отладчике данные принимаются нормально, стоит только запустить на выполнение без отладки, как все подвисает на чтении из сокета. Можете подсказать вчем проблема? Может надо гдето как то подождать пока сокет очухается или еще чего. Код ниже
-------------------- С наилучшими пожеланиями !!! |
|||
|
||||
| LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 9 Всего: 538 |
Запустить в JBuilder или в браузере? И как определил что подвисает на чтении из сокета? -------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
| ShurikA |
|
|||
![]() Зануда ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1364 Регистрация: 29.10.2005 Где: Канада Репутация: 1 Всего: 3 |
knave
Можешь показать весь класс, я думаю что знаю в чём дело. |
|||
|
||||
| knave |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 320 Регистрация: 6.3.2003 Где: Санкт-Питербург ( Россия) Репутация: нет Всего: 5 |
Я ставил логирование в мою обертку для чтения из сокета, подвисало на первом чтении из сокета. Так как будто ждет данные а они не приходят.
Может с секюрити какая нить заморочка (я новичек в яве...) Вот весь класс
-------------------- С наилучшими пожеланиями !!! |
|||
|
||||
| LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 9 Всего: 538 |
Неподписанный апплет может открывать соединение, только с хостом с которого был загружен, слушать сокет вообще не имеет право. Но в этом случае у тебя должно быть SecurityException. И все же, где он у тебя встает, 112 строка или 219? -------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
| knave |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 320 Регистрация: 6.3.2003 Где: Санкт-Питербург ( Россия) Репутация: нет Всего: 5 |
На строке 112.
Я его там все через 127.0.0.1 делаю, с секюрити в этом случае думаю проблем быт недолжно, запускаю в отладчике (не через браузер). При этом в пошаговом режиме то он работает а когда просто запускаеш то нет (так же из студии). Добавлено @ 11:39 Да, никаких эксцепшенов не вылетает, я их там всех печатаю в окно информации. -------------------- С наилучшими пожеланиями !!! |
|||
|
||||
| COVD |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1655 Регистрация: 26.7.2005 Репутация: 1 Всего: 43 |
значит , не приходят. Метод read() - блокирующий, ждет пока байт придет. Может сервер не отсылает? |
|||
|
||||
| knave |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 320 Регистрация: 6.3.2003 Где: Санкт-Питербург ( Россия) Репутация: нет Всего: 5 |
а когда в отладчике хожу пошагово по аплету то, приходит??? Как то странно. Вот если бы он и в пошаговой отладке не приходил тогда ладно, а так кат о непонятно. Сервер то же блокирующий, прием в програме на С работает нормально, а в яве как то странно. -------------------- С наилучшими пожеланиями !!! |
|||
|
||||
| LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 9 Всего: 538 |
Явных ошибок я в упор не вижу, а поскольку сервера у меня нет то погонять не могу.
Давай упростим пример до предела, один main() в нем открываем сокет, читаем данные, шлем ответ и закрываем его. Хоть будет ясно проблема в Java или нет. P.S. Еще один момент, у меня была проблема с долгим коннектом (порядка 30-50 секунд) в JDK 1.5.X, проблема была решена с выходом 1.5.0_06, если ты используешь JDK из состава JBuilder то эта проблема у тебя наличествует. -------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
| COVD |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1655 Регистрация: 26.7.2005 Репутация: 1 Всего: 43 |
Вы по-байтно читаете, потому что на С другой порядок представления целых чисел? Тогда уж надо readByte использовать, потому что read() возвращает int 0..255 и вы неправильно восстановите целое число, если оно > 127. Но наверное к текущей проблеме это отношения не имеет.
|
|||
|
||||
| LSD |
|
||||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 9 Всего: 538 |
На интеловских машинах да. Си будет писать как little endian, а Java читать как big endian (по умолчанию, но можно ее переучить
В InputStream нет метода readByte. А если полученный int привести к byte, то получим корректное значение. Так что тут все нормально. -------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
||||
|
|||||
| COVD |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1655 Регистрация: 26.7.2005 Репутация: 1 Всего: 43 |
да, действительно, кастинг умный
|
|||
|
||||
| knave |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 320 Регистрация: 6.3.2003 Где: Санкт-Питербург ( Россия) Репутация: нет Всего: 5 |
JDK из билдера, но коненк по логам проходит, она как бы данные не видит. Надо дейвительно поробовать в майне все сделать....
Да, а где взять JDK нормальный? -------------------- С наилучшими пожеланиями !!! |
|||
|
||||
| LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 9 Всего: 538 |
JDK 5.0 Update 6. Поставишь затем добавишь ее в Tools\Configure\JDK's, и в свойствах проекта укажешь использовать эту JDK. -------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
| knave |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 320 Регистрация: 6.3.2003 Где: Санкт-Питербург ( Россия) Репутация: нет Всего: 5 |
Спасибо, ща скачаю, дома попробую.
-------------------- С наилучшими пожеланиями !!! |
|||
|
||||
![]()
|
| Правила форума "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. |