|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
25.10.2009, 13:15 | #1 |
Пользователь
Регистрация: 15.11.2008
Сообщений: 33
|
передача строки с телефона на комп через интернет на Java
Здравствуйте!
Передо мной стоит следующая задача: нужно отправить текстовую строку с телефона на комп через интернет. На компе должна быть запущена консольная серверная программа на Java, которая должна вывести принятую строку на экран, а на телефоне запущено приложение на j2me в котором просто нужно нажать на кнопку для передачи строки. серверная программа на компе прослушивает порт 6666, а приложение на телефоне связывается с компом через его ip-адрес в интернете и порт 6666. У меня adsl-подключение, поэтому ip-адрес не всегда остается постоянным, но меняется нечасто(ip-адрес я здесь написал неверный, какой порт выбирать неважно). Свой ip-адрес я узнаю на сайте http://2ip.ru/. Телефон у меня Nokia 6151. При нажатии на кнопку для передачи строки приложение на телефоне зависает, а серверная программа ничего не принимает. Я недавно начал изучать Java, поэтому мои знания пока совсем примитивные, но мне необходимо решить данную задачу для того чтобы суметь сделать курсовую работу. Помогите пожалуйста. вот исходный код серверной программы (писал я его естественно не сам, а взял из одной статьи и немного изменил): Код:
Последний раз редактировалось Rembo; 25.10.2009 в 15:37. |
25.10.2009, 13:47 | #2 |
Старожил
Регистрация: 29.09.2009
Сообщений: 9,713
|
эх, давно юзал j2me...с основным мидлетом у вас все в порядке, а вот с работу с сокетом раньше делал так
Код:
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation |
27.10.2009, 22:54 | #3 |
Пользователь
Регистрация: 15.11.2008
Сообщений: 33
|
спасибо большое.
статью из книги прочитал, но мою проблему это не решило. мне очень тяжело понять такой сложный код без комментариев, не могли бы вы немного пояснить его. я так понял у меня с серверной программой что то не так. А что именно? |
27.10.2009, 23:53 | #4 | ||
Старожил
Регистрация: 29.09.2009
Сообщений: 9,713
|
1) что делает вот это
Цитата:
2) Цитата:
- файрволл на вашей машине - не открыт порт для этого сокета на роутере или adsl-модеме (перебросить порты, открыть) - оператор закрыл порт и использует другие (лично у меня на юмс подключение gprs стоят порты 8080, как у вас не знаю)... вот по-последнему... когда ваше приложение соединяется, то 1- телефон должен спросить- разрешить выход? (у вас спрашивает?) 2- зависон может быть из-за закрытого порта 3- нет связи с вашим сервером
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation Последний раз редактировалось raxp; 27.10.2009 в 23:55. |
||
29.10.2009, 03:12 | #5 |
Пользователь
Регистрация: 15.11.2008
Сообщений: 33
|
Код:
потом строка выводится на экран и все повторяется по новой - ожидаются другие строки, пока не завершится сеанс связи. Код:
Код:
там описываются клиент и сервер на Java, которые запускаются и взаимодействуют на одном компе. при их использовании у меня все работает, строки принимаются и передаются как надо. и потом я решил попробовать использовать серверную программу оттуда для решения своей задачи (передача строки с телефона на комп через интернет на Java). брандмауэр у меня выключен, касперского на время испытаний я отключил. модем у меня вот такой: adsl router d-link dsl-2500u порт 6666 открыл как описано вот здесь: http://friends-forum.com/forum/showthread.php?t=69554 при нажатии на кнопку для передачи строки мой телефон спрашивает меня: разрешить доступ к сети? потом выполняется подключение к сети Beeline Internet. никакой строки на сервер не передается, а приложение на телефоне висит (это я определяю по неработающей кнопке Exit) денег с телефона за передаваемый трафик не сняли(значит я так понял никаких данных через интернет не передалось). Попробовал проделать все то же самое с портом 8080, на что моя nokia 6151 сразу же при нажатии на кнопку без всяких подключений выдала ошибку приложения Security java/lang/Security Exception Untrusted MIDlet attempted to connect to a restricted port у меня сейчас мысли такие: узнать порт подключения gprs на моем beeline и попробовать еще раз. наведите пожалуйста меня на путь истины, если есть какие-нибудь соображения по этой задаче. |
29.10.2009, 09:56 | #6 | ||
Старожил
Регистрация: 29.09.2009
Сообщений: 9,713
|
Цитата:
Цитата:
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation |
||
05.11.2009, 02:01 | #7 |
Пользователь
Регистрация: 15.11.2008
Сообщений: 33
|
raxp, большое спасибо за помощь.
порт подключения gprs на моем beeline я еще не узнал, но у меня возник серьезный вопрос: я прочитал статью про внутренние и внешние Ip-адреса. понял, что у меня внутренний ip-адрес внутри сети провайдера, а не внешний ip, как я думал раньше. возможно ли решить мою задачу с использованием внутреннего ip? если да, то как это сделать(в общих чертах)? (сам я, после прочтения статей про порты и Ip-адреса думаю что нельзя) |
05.11.2009, 09:00 | #8 |
Старожил
Регистрация: 29.09.2009
Сообщений: 9,713
|
верно... именно поэтому основная идея и реализация в моей статье было использование внешнего сервера irq/icq. В сети достаточно открытых проектов типа bombus, jimm (sourceforge.net) на их основе с использованием j2me (хотя пользую- antenna), возьмите один из них и добавьте свою систему поверх (лучше irq)
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation |
26.11.2009, 10:29 | #9 |
Пользователь
Регистрация: 15.11.2008
Сообщений: 33
|
данные с телефона на комп и обратно с компа на телефон я наконец-то отправил.
примерно также как я изначально пытался, но с небольшими изменениями в кодах клиента и сервера. мне посоветовали на другом форуме использовать для подключения порт 8090. Но возможно все будет работать и с другими портами, я не проверял после изменений в кодах программ. я перечитал статьи http://ru.wikibooks.org/wiki/Порт и http://ru.wikibooks.org/wiki/Порт/NAT, все обдумал и оказалось что у меня внешний динамический ip-адрес, т.к. я бы не смог открыть необходимый порт на маршрутизаторе, если бы это было не так. |
26.11.2009, 10:41 | #10 | |||
Старожил
Регистрация: 29.09.2009
Сообщений: 9,713
|
Цитата:
Цитата:
Цитата:
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation |
|||