![]() |
Модераторы: javastic, AntonSaburov |
![]() ![]() ![]() |
|
VKoresh |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 67 Регистрация: 14.6.2007 Где: Запорожье Репутация: 1 Всего: 1 |
Сделал вот так:
Дело в том, что мне надо чтобы приложение не только отсылало строки но и принимало их. Отсылает на ура,а вот слушать порт и принимать не хочет. ![]() На строке listener = (SocketConnection)Connector.open("socket://:5555"); выдает java.io.IOException: ServerSocket Open Помогите, пожалйста! |
|||
|
||||
W0LF |
|
||||
![]() alexander lonsky ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 1164 Регистрация: 9.2.2006 Где: Ukraine.Dnepropet rovsk Репутация: 19 Всего: 20 |
а ты посмотри в сторону
Добавлено через 3 минуты и 51 секунду Посмотри в WTK там пример есть очень простой.
-------------------- iOS developer |
||||
|
|||||
VKoresh |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 67 Регистрация: 14.6.2007 Где: Запорожье Репутация: 1 Всего: 1 |
Смотрел, не помогло, Горнакова и Пирумяна тоже читал, и тоже не помогло.
![]() ![]() ![]() Обидно, что даже компилится без ошибок... ![]() |
|||
|
||||
VKoresh |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 67 Регистрация: 14.6.2007 Где: Запорожье Репутация: 1 Всего: 1 |
![]() |
|||
|
||||
AntonSaburov |
|
|||
![]() Штурман ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 5658 Регистрация: 2.7.2002 Где: Санкт-Петербург Репутация: нет Всего: 118 |
А ты уверен, что этот порт свободен ? В смысле - 5555. Мож кто на нем висит постоянно ?
|
|||
|
||||
Dancer |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 537 Регистрация: 29.4.2005 Где: Nizhniy Novgorod Репутация: 33 Всего: 37 |
дык он сам же на нём и висит скорее всего
![]() вот этот кусок кода очень не понятен!!!! (почему одно и то же название переменно фигурирует, перекрытие имён происходит) listener = (SocketConnection)Connector.open("socket://:5555"); DataInputStream listener = sc.openDataInputStream(); Добавлено через 8 минут и 29 секунд наверное должно быть так ![]()
-------------------- У программистов есть великая тайна: всё, что только можно, было давно кем-то когда-то написано. Разработчику только нужно знать в какое место кода какие строчки вставить! ![]() |
|||
|
||||
VKoresh |
|
||||
Шустрый ![]() Профиль Группа: Участник Сообщений: 67 Регистрация: 14.6.2007 Где: Запорожье Репутация: 1 Всего: 1 |
Добавлено @ 17:09
AntonSaburov,
![]() Добавлено @ 17:19 Dancer, сделал
все как ты и говорил... Все та же проблемма - На строке listener = (SocketConnection)Connector.open("socket://:5555"); выдает java.io.IOException: ServerSocket Open Это сообщение отредактировал(а) VKoresh - 4.7.2007, 09:38 |
||||
|
|||||
Dancer |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 537 Регистрация: 29.4.2005 Где: Nizhniy Novgorod Репутация: 33 Всего: 37 |
Ну давай всё с самого начала. (кстати на другом форуме это то же ты? Malkav кажется - или мне и туда и сюда отвечать нужно если вы два разных человека?)
1. Расскажи что ты хочешь сделать? 2. "Кто" такой сервер с которого ты что-то читаешь? 3. Есть ли возможность что-то посылать в определённый порт этого сервера и видеть, что он это принял и увидеть его реакцию? ===================================== Я не понимаю, для чего тебе на девайсе спецом заводить порт для прослушки, возможно ты просто немного не в ту сторону рубишься ![]() Если ты заводишь на "своём" телефоне порт, для того чтобы тебе кто-то на него что-то присылал (с друго телефона, с тырнета и т.д.) тебе нужно пользовать другой интерфейс для его создания. ServerSocketConnection ssc = (ServerSocketConnection)Connector.open("socket://:9677"); Это будет означать, что ты на своём телефоне слушаешь порт 9677, и всё что на него поступит, ты можешь обработать. Но для того чтобы в этот порт что-то пришло, нужно чтобы кто-то отправил тебе какие-либо данные. Это либо другой аппарат, либо с сайта (скриптом). Тебе нужно получить IP адрес твоего аппарата, и по этому адресу он будет доступен "клиентам" чтобы узнать IP адрес, который выдаётся динамически оператором, после регистрации сервака ssc коннекшена можно вызвать метод getLocalAddress() на объекте ssc. Для работы с ssc (чтение/запись) нам понадобится SocketConnection oбъект, мы его получаем через специальный метод: SocketConnection server = (SocketConnection) ssc.acceptAndOpen(); ну и далее уже по известной схеме, получаем стримы для чтения/записи InputStream serverIS = server.openInputStream(); OutputStream serverOS = server.openOutputStream(); Если же ты работаешь с каким-то серваком и тебе в него нужно что-то писать (делать какие-то посылки данных на сервер, не только чтение) то делаем это следующим образом, через интерфейс SocketConnection SocketConnection sc = (SocketConnection) Connector.open("socket://"+IP+":"+PORT); IP это обязательное поле!!!! InputStream is = sc.openInputStream(); // для чтения данных с сервера из коннекшена sc OutputStream os = sc.openOutputStream();// для отправки данных серверу из коннекшена sc -------------------- Маленькое отступление. Где ты это пытаешься "смотреть" (тестить). Могу предложить простенький вариант. Подними у себя на локальной машине простенький самописный сервер (можешь посмотреть как это делается в J2SE и работать с серваком на Java), ну или какой нить Apache или что-то в этом роде. Если не Java сервак, то тогда сделай скрипт perl/jsp/asp (или что-то другое, что лучше знаешь) и сиди и слушай этим скриптом порт, и делай какой-нить ответ "PONG", если тебе в этот порт сваливается "PING" и выводи это в лог или на браузерную страницу или ещё как. То есть, ты этим просто сможешь проверить, что у тебя твой Java клиент на мобиле робит. А клиента запускаешь через WTK регистрируя SocketConnection как Connector.open("socke://127.0.0.1:"+PORT); PORT = это твой зарегенный порт на серваке (Java, Apache и т.д.) -------------------- У программистов есть великая тайна: всё, что только можно, было давно кем-то когда-то написано. Разработчику только нужно знать в какое место кода какие строчки вставить! ![]() |
|||
|
||||
VKoresh |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 67 Регистрация: 14.6.2007 Где: Запорожье Репутация: 1 Всего: 1 |
Dancer, Malkav - это, можно сказать, мое второе Я
![]() 1) Мой мидлет должен представлять собой клиент, котрый коннектится к серверу и может отсылать ему комманды и ,соответственно им, принимать изображения, звуки, музыку, текст и т.д. 2) Сервер представляет собой прогу на Delphi, которая спит и видит принять откуда-нибудь комманду. Т.е. перманентно ожидает коннекта. По коннекту отсылает соответствующее уведомление, из серии "молодец, я тебя вижу, теперь пришли мне еще комманду че тебе еще переслать". 3) Сервер ведет лог и там отображется что, мол 11:05:59 законнектился Вася Пупкин и т.д. Ответы шлет автоматически. В работе сервака я уверен больше, чем в том что солнце встает на востоке. ![]() ![]() Сейчас у меня такой трабл - коннектится просто зашибись, а ответ принять нормально не может...
С таким раскладом принимает один раз...последний ![]() Но, сам понимаешь, такое решение никуда не годится... Вот и начал придумывать себе прослушиватель... ![]() ЗЫ давай уж тут отписываться, а не на другом форуме. Пора прекратить на фиг эту путаницу. ![]() Это сообщение отредактировал(а) VKoresh - 4.7.2007, 11:43 |
|||
|
||||
VKoresh |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 67 Регистрация: 14.6.2007 Где: Запорожье Репутация: 1 Всего: 1 |
Как обрабатывать поступившие данные мне пока не важно. Мне надо чтоб он мог их принимать постоянно... |
|||
|
||||
W0LF |
|
||||||
![]() alexander lonsky ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 1164 Регистрация: 9.2.2006 Где: Ukraine.Dnepropet rovsk Репутация: 19 Всего: 20 |
Тебе для этого не нужно открывать второе соединение на телефоне.. Когда ты подрубился к серваку - он тебе уже сам может посылать все, что надо. Это ж тебе не хттп - отослал-принял, а соединение всегда открыто.
Ага.. понятно.. все намного проще.. и не надо серверов никаких на телефоне ![]() Я ж просил посмотреть на пример из WTK ![]()
-------------------- iOS developer |
||||||
|
|||||||
VKoresh |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 67 Регистрация: 14.6.2007 Где: Запорожье Репутация: 1 Всего: 1 |
Освобождайся, я подожду
![]() А что касается примера, то впрвх - Бесконечный Цикл?
А ввтрх - У меня большая часть кода как раз оттуда, но с некоторыми доработками.. и втртх - ![]() |
|||
|
||||
W0LF |
|
||||||
![]() alexander lonsky ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 1164 Регистрация: 9.2.2006 Где: Ukraine.Dnepropet rovsk Репутация: 19 Всего: 20 |
Хм, чуть освободилсо
![]()
тут все ясно
Тут тож ясно, класс Sender разберем ниже.
Sender надо расписывать? Это сообщение отредактировал(а) W0LF - 4.7.2007, 13:00 -------------------- iOS developer |
||||||
|
|||||||
VKoresh |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 67 Регистрация: 14.6.2007 Где: Запорожье Репутация: 1 Всего: 1 |
Если не затруднит... ![]() Но получается Бесконечный Цикл выполнится один раз? К примеру ситуация - отслал-принял-отослал-принял? каждый раз вызывать run? Я правильно понял? Это сообщение отредактировал(а) VKoresh - 4.7.2007, 15:42 |
|||
|
||||
W0LF |
|
||||
![]() alexander lonsky ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 1164 Регистрация: 9.2.2006 Где: Ukraine.Dnepropet rovsk Репутация: 19 Всего: 20 |
нет, не правильно.. run() - это метод потока. он завершился - поток умер(очень грубо говоря). Бесконечный цикл ждет пакеты, внутренний цикл - считывает один пакет Тебе нужно просто запустить поток и все.. далее он будет работать Sender чуть позже распишу.. реально времени нет :(
Еще раз говорю : смотри в пример WTK. просто смотри что и как они делают. ![]() -------------------- iOS developer |
||||
|
|||||
![]() ![]() ![]() |
FAQ раздела лежит здесь! |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Java ME (J2ME) | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |