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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> помогите с сокетами (C++, SSL), необходимо создать request-answer функцию с SSL 
:(
    Опции темы
pyqt
  Дата 23.1.2009, 03:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 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 реализовать, как я понял в стандартной библиотеке это сложно.
Как это лучше реализовать?

Заранее спасибо за помощь!
PM MAIL   Вверх
MAKCim
Дата 23.1.2009, 09:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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


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

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



Цитата(pyqt @  23.1.2009,  03:46 Найти цитируемый пост)
Я искал, чтобы проще SSL реализовать, как я понял в стандартной библиотеке это сложно.

не сложно


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

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


Опытный
**


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

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



Цитата(pyqt @  23.1.2009,  03:46 Найти цитируемый пост)
Но! Там все event-based, т.е. при OnRead сделать то-то, и т.п.
А мне нужно как в PHP fsockopen, подключился, отправил запрос, потом fread (пока не получу данные - жду), и т.п.

А чем тебя не устраивает event-based ?
там все так же, только бесконечный цикл за тебя реализует библиотека.
PM MAIL ICQ Jabber   Вверх
MAKCim
Дата 23.1.2009, 16:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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


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

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



Цитата(vinick @  23.1.2009,  16:13 Найти цитируемый пост)
там все так же, только бесконечный цикл за тебя реализует библиотека. 

имхо, нет

кроме того, блокирование на read/write и бесконечный цикл это не одно и то же  smile 



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

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


Опытный
**


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

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



Цитата(MAKCim @  23.1.2009,  16:41 Найти цитируемый пост)
имхо, нет

Я похоже не смог внятно выразить свою мысль  smile 
Суть в том что между
 
Цитата

подключился, отправил запрос, потом fread (пока не получу данные - жду)

и
Цитата

при OnRead сделать то-то, и т.п.

особой разницы нет. Можно рассматривать вызов onRead как эквивалент возврата из блокированного fread и все дела smile


pyqt,  если очень хочется плюсовой обвязки над сокетами можешь посмотреть на boost.asio, там так же есть поддержка SSL и можно работать с синхронными сокетами, т.е. connect(), потом в read ждешь пока не пришли данные и т.п. Хотя на мой взгляд event-based гораздо удобнее.
PM MAIL ICQ Jabber   Вверх
MAKCim
Дата 23.1.2009, 19:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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


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

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



Цитата(vinick @  23.1.2009,  18:11 Найти цитируемый пост)
особой разницы нет. Можно рассматривать вызов onRead как эквивалент возврата из блокированного fread и все дела

а ждать мы onRead как будем?


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

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


Опытный
**


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

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



Цитата(MAKCim @  23.1.2009,  19:17 Найти цитируемый пост)
а ждать мы onRead как будем? 

А как мы ждем возврата из блокируемого read ? Тут так же.  Скорее всего мы будем спать в каком-нить системном вызове.
PM MAIL ICQ Jabber   Вверх
MAKCim
Дата 23.1.2009, 22:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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


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

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



Цитата(vinick @  23.1.2009,  21:09 Найти цитируемый пост)
Скорее всего мы будем спать в каком-нить системном вызове. 

ну и в чем отличие от блокирующей модели тогда?  smile 


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

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


Опытный
**


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

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



Цитата(MAKCim @  23.1.2009,  22:21 Найти цитируемый пост)
ну и в чем отличие от блокирующей модели тогда?  

Принципиальной разницы. как я и говорил -  нет. Синхронная и асинхронная модели эквивалентны.
PM MAIL ICQ Jabber   Вверх
MAKCim
Дата 23.1.2009, 23:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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


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

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



Цитата(vinick @  23.1.2009,  22:40 Найти цитируемый пост)
Синхронная и асинхронная модели эквивалентны. 

смелое утверждение...но не верное


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

PM MAIL   Вверх
vinick
Дата 23.1.2009, 23:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(MAKCim @  23.1.2009,  23:33 Найти цитируемый пост)
смелое утверждение...но не верное

Обоснование будет? или краткость твоя сестра ? smile
PM MAIL ICQ Jabber   Вверх
MAKCim
Дата 24.1.2009, 11:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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


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

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



Цитата(vinick @  23.1.2009,  23:57 Найти цитируемый пост)
Обоснование будет? или краткость твоя сестра ?

синхронная концепция - запрос с блокировкой в ожидании результата 
I/O: блокирующий, мультиплексированный

асинхронная концепция - запрос без блокировки в ожидании результата 
I/O: неблокирующий, event-based (например через сигнал), асинхронный
при этом в первых двух типах I/O асинхронной концепции нет автоматического вызова примитивов read/write ядром


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

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


I wanna fork()
****


Профиль
Группа: Комодератор
Сообщений: 3990
Регистрация: 1.10.2005
Где: Санкт-Петербург

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



pyqt, посмотрите на boost Asio.


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

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

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


 




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


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

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