![]() |
Модераторы: xvr |
![]() ![]() ![]() |
|
pyqt |
|
|||
Новичок Профиль Группа: Участник Сообщений: 7 Регистрация: 9.5.2008 Репутация: нет Всего: нет |
Привет всем!
Пишу консольную прогу клиент-сервер (Linux, g++) Клиент подключается к серверу и запрашивает данные. На каждый запрос получает ответ. В итоге необходимо примерно такую функцию: string getResult(string req) { //проверить, если все еще подключен. Если нет - переподключиться, и так бесконечно //отправить request //return ответ } И все это надо завязать на OpenSSL. Сервер должен для каждого соединения создавать поток, который подключается к postgreSQL и вытягивает данные (для каждого потока - свое postgres соединение). Что я уже сделал: Используя библиотеку Sockets (http://www.alhem.net/Sockets/) я наладил клиент-сервер с SSL. Могу делать Send(), получать ответ. Не знаю как там с отдельными потоками на сервере, еще не проверил. Но! Там все event-based, т.е. при OnRead сделать то-то, и т.п. А мне нужно как в PHP fsockopen, подключился, отправил запрос, потом fread (пока не получу данные - жду), и т.п. Подходит ли эта библиотека? Я искал, чтобы проще SSL реализовать, как я понял в стандартной библиотеке это сложно. Как это лучше реализовать? Заранее спасибо за помощь! |
|||
|
||||
MAKCim |
|
|||
![]() Воін дZэна ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5644 Регистрация: 10.12.2005 Где: Менск, РБ Репутация: 84 Всего: 207 |
не сложно -------------------- Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі © |
|||
|
||||
vinick |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 285 Регистрация: 9.6.2005 Репутация: 4 Всего: 22 |
А чем тебя не устраивает event-based ? там все так же, только бесконечный цикл за тебя реализует библиотека. |
|||
|
||||
MAKCim |
|
|||
![]() Воін дZэна ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5644 Регистрация: 10.12.2005 Где: Менск, РБ Репутация: 84 Всего: 207 |
имхо, нет кроме того, блокирование на read/write и бесконечный цикл это не одно и то же ![]() -------------------- Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі © |
|||
|
||||
vinick |
|
||||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 285 Регистрация: 9.6.2005 Репутация: 4 Всего: 22 |
Я похоже не смог внятно выразить свою мысль ![]() Суть в том что между
и
особой разницы нет. Можно рассматривать вызов onRead как эквивалент возврата из блокированного fread и все дела ![]() pyqt, если очень хочется плюсовой обвязки над сокетами можешь посмотреть на boost.asio, там так же есть поддержка SSL и можно работать с синхронными сокетами, т.е. connect(), потом в read ждешь пока не пришли данные и т.п. Хотя на мой взгляд event-based гораздо удобнее. |
||||
|
|||||
MAKCim |
|
|||
![]() Воін дZэна ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5644 Регистрация: 10.12.2005 Где: Менск, РБ Репутация: 84 Всего: 207 |
а ждать мы onRead как будем? -------------------- Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі © |
|||
|
||||
vinick |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 285 Регистрация: 9.6.2005 Репутация: 4 Всего: 22 |
||||
|
||||
MAKCim |
|
|||
![]() Воін дZэна ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5644 Регистрация: 10.12.2005 Где: Менск, РБ Репутация: 84 Всего: 207 |
ну и в чем отличие от блокирующей модели тогда? ![]() -------------------- Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі © |
|||
|
||||
vinick |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 285 Регистрация: 9.6.2005 Репутация: 4 Всего: 22 |
||||
|
||||
MAKCim |
|
|||
![]() Воін дZэна ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5644 Регистрация: 10.12.2005 Где: Менск, РБ Репутация: 84 Всего: 207 |
смелое утверждение...но не верное -------------------- Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі © |
|||
|
||||
vinick |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 285 Регистрация: 9.6.2005 Репутация: 4 Всего: 22 |
||||
|
||||
MAKCim |
|
|||
![]() Воін дZэна ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5644 Регистрация: 10.12.2005 Где: Менск, РБ Репутация: 84 Всего: 207 |
синхронная концепция - запрос с блокировкой в ожидании результата I/O: блокирующий, мультиплексированный асинхронная концепция - запрос без блокировки в ожидании результата I/O: неблокирующий, event-based (например через сигнал), асинхронный при этом в первых двух типах I/O асинхронной концепции нет автоматического вызова примитивов read/write ядром -------------------- Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі © |
|||
|
||||
powerfox |
|
|||
![]() I wanna fork() ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3990 Регистрация: 1.10.2005 Где: Санкт-Петербург Репутация: 5 Всего: 97 |
pyqt, посмотрите на boost Asio.
|
|||
|
||||
![]() ![]() ![]() |
Правила форума "С/С++: Программирование под Unix/Linux" | |
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, xvr. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Программирование под Unix/Linux | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |