Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> как узнать что на сокет пришли данные? 
:(
    Опции темы
Alone
  Дата 1.8.2003, 10:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 663
Регистрация: 11.5.2003
Где: Dnepropetrovsk, U A

Репутация: 3
Всего: 6



Народ, подскажите кто знает:
Есть клиент на яве. Он посылает серверу запрос и ждет ответ. Это его обычный режим работы.
Но возникает ситуация, когда сервер присылает сообщение для клиента. Как обработать такой вариант?
Я так полагаю, необходимо реализовать процесс "прослушивания" сокета. Но он не должен считывать с него данные (?)

Во фре есть такая замечательная вещь как kevent() & kqueue()
Интересно, может подобные механизмы есть и на явеconfused.gif




--------------------
web developer/telecommunication specialist.
mailto: [email protected]
ICQ#28442924

PM MAIL WWW ICQ   Вверх
DarkDS
Дата 1.8.2003, 11:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник Клуба
Сообщений: 748
Регистрация: 6.5.2003
Где: Таллинн, Эстония

Репутация: 11
Всего: 16



Хмм... А что если взять из сокета инпут стирим и проверять available()?
PM MAIL   Вверх
Angie
Дата 1.8.2003, 12:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 23
Регистрация: 12.7.2003

Репутация: нет
Всего: нет



Сокет TCP или UDP? Мне тоже пришлось столкнуться с такой проблемой. Один из выходов: ставь receive() и все. Т.е. без send(). Выходит, что клиент все время ожидает сообщения. А чтоб не висело -- все это счастье в отдельный процесс.
PM MAIL   Вверх
Alone
Дата 2.8.2003, 10:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 663
Регистрация: 11.5.2003
Где: Dnepropetrovsk, U A

Репутация: 3
Всего: 6



Сокет tcp. Я вот тут посмотрел, есть метод ready() Может он спасет отца русской демократии... Надо будет протестить. НО! Если у кого еще какие полезные мысли есть - то плиз сюда.


--------------------
web developer/telecommunication specialist.
mailto: [email protected]
ICQ#28442924

PM MAIL WWW ICQ   Вверх
Alone
Дата 2.8.2003, 10:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 663
Регистрация: 11.5.2003
Где: Dnepropetrovsk, U A

Репутация: 3
Всего: 6



Да, и еще: Если не сложно, киньте пример как сделать отдельный процесс?
Для этого надо набросать какой нить класс, который будет наследником какого нить Thread? А потом что?


--------------------
web developer/telecommunication specialist.
mailto: [email protected]
ICQ#28442924

PM MAIL WWW ICQ   Вверх
DarkDS
Дата 2.8.2003, 10:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник Клуба
Сообщений: 748
Регистрация: 6.5.2003
Где: Таллинн, Эстония

Репутация: 11
Всего: 16



Делаешь наследником от тред... Переопределяешь метод run() так чтобы оттуда шла основная работа (пока он работает - работает тред... если нужно чтобы тред постоянно висел - можно бесконечный цыкл вставить smile.gif )
а потом в основной программе делаешь thread.start(). Могу более подробный пример дать, если нужно smile.gif
PM MAIL   Вверх
Alone
Дата 2.8.2003, 12:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 663
Регистрация: 11.5.2003
Где: Dnepropetrovsk, U A

Репутация: 3
Всего: 6



если можно, в мыло.
[email protected]


--------------------
web developer/telecommunication specialist.
mailto: [email protected]
ICQ#28442924

PM MAIL WWW ICQ   Вверх
DarkDS
Дата 2.8.2003, 13:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник Клуба
Сообщений: 748
Регистрация: 6.5.2003
Где: Таллинн, Эстония

Репутация: 11
Всего: 16



Ушло.
Кстати... Сорри... Не правльно сказал - класс должен быть наследован от Runnable
Пример:
Код

public class MyRunnable implements Runnable {
public void run() {
// Do job
}
}

. а запускать:
Код

Thread thread = new Thread( new MyRunnable() );
thread.start();

Более подробно - смотри в присланном файле

Это сообщение отредактировал(а) DarkDS - 2.8.2003, 13:33
PM MAIL   Вверх
Alone
Дата 4.8.2003, 08:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 663
Регистрация: 11.5.2003
Где: Dnepropetrovsk, U A

Репутация: 3
Всего: 6



м-дя... рамблер тупит... Мыла нет.
давай на альтернативный ящик , ок?
[email protected]


--------------------
web developer/telecommunication specialist.
mailto: [email protected]
ICQ#28442924

PM MAIL WWW ICQ   Вверх
DarkDS
Дата 4.8.2003, 09:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник Клуба
Сообщений: 748
Регистрация: 6.5.2003
Где: Таллинн, Эстония

Репутация: 11
Всего: 16



Ушло-2

Это сообщение отредактировал(а) DarkDS - 4.8.2003, 09:15
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
javastic
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0477 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.