Модераторы: xvr
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> epoll() на клиенте и сервере. 
V
    Опции темы
boostcoder
Дата 18.10.2010, 09:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


pattern`щик
****


Профиль
Группа: Завсегдатай
Сообщений: 5458
Регистрация: 1.4.2010

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



всем привет.
интересует такой вопрос..
сервер мониторит дескрипторы сокетов на предмет изменения их состояния со стороны клиента.
я вот о чем подумал: допустим, мне нужно чтоб клиент, так же, асинхронно, как и сервер, мог мониторить их на предмет изменения их состояния со стороны сервера. т.е. чтоб оба участника сессии могли одновременно быть и ведущими и ведомыми.
такое возможно?

спасибо.

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


Воін дZэна
****


Профиль
Группа: Экс. модератор
Сообщений: 5644
Регистрация: 10.12.2005
Где: Менск, РБ

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



если сервер сам сообщает каждому клиенту о том, что остальные клиенты (сокеты) изменили свое состояние
для этого, видимо, клиент должен открыть два соединения с сервером: одно обычное, второе - для мониторинга

это если я правильно понял суть ;)


--------------------
Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі ©

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


pattern`щик
****


Профиль
Группа: Завсегдатай
Сообщений: 5458
Регистрация: 1.4.2010

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



Цитата(MAKCim @  18.10.2010,  09:21 Найти цитируемый пост)
если сервер сам сообщает каждому клиенту о том, что остальные клиенты (сокеты) изменили свое состояние

как бы да... но уточню.
хотелось бы сделать так, чтоб клиент мог мониторить дескриптор.
вроди бы мы поняли друг-друга...

если я вас правильно понял, то клиент по одному соединению общается с сервером обычным образом, а второе использует так же как и сервер, для мониторинга, так?
PM WWW   Вверх
MAKCim
Дата 18.10.2010, 11:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Воін дZэна
****


Профиль
Группа: Экс. модератор
Сообщений: 5644
Регистрация: 10.12.2005
Где: Менск, РБ

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



по первому соединению "общаемся" по протоколу
по второму получаем от сервера информацию о других клиентах
как-то так


--------------------
Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі ©

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


pattern`щик
****


Профиль
Группа: Завсегдатай
Сообщений: 5458
Регистрация: 1.4.2010

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



запутали.
поясню: хочу сделать так, чтоб клиент, так же как и сервер, мог определять изменение на сокете. т.е. чтоб оба были инициаторами сессии.
клиент постучал на сервер, переключился в режим прослушивания сокета, сервер ответил, клиент получил событие изменения состояния сокета, и т.д..

не знаю как еще это объяснить..

Это сообщение отредактировал(а) boostcoder - 18.10.2010, 11:25
PM WWW   Вверх
MAKCim
Дата 18.10.2010, 11:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Воін дZэна
****


Профиль
Группа: Экс. модератор
Сообщений: 5644
Регистрация: 10.12.2005
Где: Менск, РБ

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



Цитата(boostcoder @  18.10.2010,  11:24 Найти цитируемый пост)
клиент постучал на сервер

connect() со стороны клиента

Цитата(boostcoder @  18.10.2010,  11:24 Найти цитируемый пост)
переключился в режим прослушивания сокета,

вот здесь не понял
то ли имеется в виду listen(), то ли добавление в epoll для получения ивэнтов...




--------------------
Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі ©

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


pattern`щик
****


Профиль
Группа: Завсегдатай
Сообщений: 5458
Регистрация: 1.4.2010

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



Цитата(MAKCim @  18.10.2010,  11:42 Найти цитируемый пост)
вот здесь не понял
то ли имеется в виду listen(), то ли добавление в epoll для получения ивэнтов...

в этом то и вопрос. как реализовать задумку? чтоб клиент не тупо ожидал заранее известного ему события(чтения/записи). а слушал сокет на предмет появления на нем событий.

Добавлено через 1 минуту и 58 секунд
мне тут подсказывают, что наверняка мне нужен бэкконнект.. пошел в гугл..

Добавлено через 4 минуты и 52 секунды
бэкконнект - позволяет подключаться к юзеру за натом. это не то.
у меня юзер сам подключается к серверу.
PM WWW   Вверх
MAKCim
Дата 18.10.2010, 12:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Воін дZэна
****


Профиль
Группа: Экс. модератор
Сообщений: 5644
Регистрация: 10.12.2005
Где: Менск, РБ

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



чет я все равно не догоняю, что надо smile
разбираемся
listen() надо для того, чтобы сделать сокет прослушивающимся, т. е. чтобы _получать_ новые коннекты
еще раз, после конеекта от клиента к серверу что должен делать клиент? т. е. какая и о чем ему нужна информация?


--------------------
Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі ©

PM MAIL   Вверх
mes
Дата 18.10.2010, 12:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


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

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



Цитата(boostcoder @  18.10.2010,  10:47 Найти цитируемый пост)
чтоб клиент не тупо ожидал заранее известного ему события(чтения/записи). а слушал сокет на предмет появления на нем событий.

 smile 
случаев взаимодействия всего два : 
1. постоянно слушать  - т.е опрос состояния
2. ждать события -  тот же колбяк

что Вам нужно не понятно .. 




--------------------
PM MAIL WWW   Вверх
xvr
Дата 18.10.2010, 14:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 7046
Регистрация: 28.8.2007
Где: Дублин, Ирландия

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



Насколько я понял из туманных вопросов ТС, он хочет использовать epoll на обоих сторонах сокета (на сервере и у клиента). Это вполне возможно, epoll'у глубоко фиолетово, кто к кому подключался (если конечно от него хотят не мониторинг именно подключения). Собственно обмен данными (чтение/запись) в сокетах абсолютно симметричны, как со стороны сервера, так и со стороны клиента.

PM MAIL   Вверх
boostcoder
Дата 18.10.2010, 14:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


pattern`щик
****


Профиль
Группа: Завсегдатай
Сообщений: 5458
Регистрация: 1.4.2010

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



Цитата(xvr @  18.10.2010,  14:40 Найти цитируемый пост)
он хочет использовать epoll на обоих сторонах сокета (на сервере и у клиента). Это вполне возможно, epoll'у глубоко фиолетово, кто к кому подключался (если конечно от него хотят не мониторинг именно подключения). Собственно обмен данными (чтение/запись) в сокетах абсолютно симметричны, как со стороны сервера, так и со стороны клиента.

именно!
я вроде так и объяснил..
PM WWW   Вверх
MAKCim
Дата 18.10.2010, 16:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Воін дZэна
****


Профиль
Группа: Экс. модератор
Сообщений: 5644
Регистрация: 10.12.2005
Где: Менск, РБ

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



boostcoder
плин
с моей т. з. это очевидно и в эту сторону я даже не думал...

epoll'у в принципе все равно, что в него засовывают
лишь бы объект был валиден и поддерживал poll


--------------------
Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі ©

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


pattern`щик
****


Профиль
Группа: Завсегдатай
Сообщений: 5458
Регистрация: 1.4.2010

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



Цитата(MAKCim @ 18.10.2010,  16:09)
boostcoder
плин
с моей т. з. это очевидно и в эту сторону я даже не думал...

epoll'у в принципе все равно, что в него засовывают
лишь бы объект был валиден и поддерживал poll

все, понял.
прежде чем код писать, хотел убедится что это возможно с теоретической т.з.
мне казалось, что epoll() привилегия только одной из сторон в сессии.

всем спасибо.

PM WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С/С++: Программирование под Unix/Linux"
xvr
  • Проставьте несколько ключевых слов темы, чтобы её можно было легче найти.
  • Не забывайте пользоваться кнопкой "Код".
  • Вопросы мобильной разработки тут
  • Телепатов на форуме нет! Задавайте чёткий, конкретный и полный вопрос. Указывайте полностью ошибки компилятора и компоновщика.
  • Новое сообщение должно иметь прямое отношение к разделу форума. Флуд, флейм, оффтопик запрещены.
  • Категорически запрещается обсуждение вареза, "кряков", взлома программ и т.д.

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

 
 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Программирование под Unix/Linux | Следующая тема »


 




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


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

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