Вопрос про Poco library
От: Мёртвый Даун Россия  
Дата: 25.01.17 04:14
Оценка:
Всем привет!

Кто-то юзал этот кусок дерьмища? Более ужасного я не встречал, но увы, досталось в одном проекте по наследству.

Нужные примеры почти не гуглятся, пичалька.

Есть там такой функционал, Poco::Net::SocketConnector. Мне надо используя его сделать простой асинхронный TCP клиент, чтобы были хэндлеры send и receive. И всё! Примеров найти не удалось, везде только TCP сервер примеры. Сначала сделают кусок дерьма а как им пользоваться никто не напишет.

P.S. 21-ый век на дворе, но как оказалось нигде не найти примера нормального асинхронного TCP клиента. Жесть! Вообще разочарован.
Только Путин, и никого кроме Путина! О Великий и Могучий Путин — царь на веки веков, навсегда!
Смотрю только Соловьева и Михеева, для меня это самые авторитетные эксперты.
КРЫМ НАШ! СКОРО И ВСЯ УКРАИНА БУДЕТ НАШЕЙ!
Отредактировано 25.01.2017 9:53 Мёртвый Даун . Предыдущая версия . Еще …
Отредактировано 25.01.2017 4:41 Мёртвый Даун . Предыдущая версия .
Re: Вопрос про Poco library
От: Ruzzz  
Дата: 25.01.17 12:24
Оценка:
Посмотрите на пример poco\Net\samples\EchoServer\src\EchoServer.cpp
Re: Вопрос про Poco library
От: Marty Пират https://www.youtube.com/channel/UChp5PpQ6T4-93HbNF-8vSYg
Дата: 25.01.17 15:37
Оценка: +1
Здравствуйте, Мёртвый Даун, Вы писали:

МД>Кто-то юзал этот кусок дерьмища? Более ужасного я не встречал, но увы, досталось в одном проекте по наследству.


Юзал. Не понравилось

МД>Нужные примеры почти не гуглятся, пичалька.


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

МД>Есть там такой функционал, Poco::Net::SocketConnector. Мне надо используя его сделать простой асинхронный TCP клиент, чтобы были хэндлеры send и receive. И всё! Примеров найти не удалось, везде только TCP сервер примеры. Сначала сделают кусок дерьма а как им пользоваться никто не напишет.


Использовал только JSON парсинг и HTTP, так что сорри, не смогу помочь
Маньяк Робокряк колесит по городу
Re: Вопрос про Poco library
От: AndrewJD США  
Дата: 25.01.17 15:44
Оценка: +3
Здравствуйте, Мёртвый Даун, Вы писали:

МД>Есть там такой функционал, Poco::Net::SocketConnector. Мне надо используя его сделать простой асинхронный TCP клиент, чтобы были хэндлеры send и receive. И всё! Примеров найти не удалось, везде только TCP сервер примеры. Сначала сделают кусок дерьма а как им пользоваться никто не напишет.


Может лучше сразу в морг? А вместо этого изделия заиспользовать boost::asio?

МД>Кто-то юзал этот кусок дерьмища? Более ужасного я не встречал, но увы, досталось в одном проекте по наследству.

особенно меня порадовало использование функции select в реализации под винду.
"For every complex problem, there is a solution that is simple, neat,
and wrong."
Re: Вопрос про Poco library
От: regnar  
Дата: 25.01.17 18:19
Оценка: -1
Рокет саенс, берегите моск!

class ClientServiceHandler
{
public:
    ClientServiceHandler(StreamSocket& socket, SocketReactor& reactor):
        _socket(socket),
        _reactor(reactor),
        _or(*this, &ClientServiceHandler::onReadable),
        _ow(*this, &ClientServiceHandler::onWritable)
    {
        _reactor.addEventHandler(_socket, _or);
        _reactor.addEventHandler(_socket, _ow);
    }
    
    void onReadable(const NotificationPtr& pNf)
    {
        //...
    }
    
    void onWritable(const NotificationPtr& pNf)
    {
        _reactor.removeEventHandler(...); // write once
        //...
    }
    
private:
    StreamSocket                                         _socket;
    SocketReactor&                                       _reactor;
    NObserver<ClientServiceHandler, ReadableNotification> _or;
    NObserver<ClientServiceHandler, WritableNotification> _ow;
};


Вообще для поколения SO есть даже слайды:


Также всё расжевано в тестах для каждого класса, но это ж блин не гуглится...
Отредактировано 25.01.2017 18:22 regnar . Предыдущая версия .
Re[2]: Вопрос про Poco library
От: Мёртвый Даун Россия  
Дата: 26.01.17 01:40
Оценка:
Здравствуйте, Ruzzz, Вы писали:

R>Посмотрите на пример poco\Net\samples\EchoServer\src\EchoServer.cpp


Спасибо, смотрел, не то...

1) там сервер, а мне клиент нужен...
2) да, там есть и клиент, но не смогу его вписать в свою архитектуру...
Только Путин, и никого кроме Путина! О Великий и Могучий Путин — царь на веки веков, навсегда!
Смотрю только Соловьева и Михеева, для меня это самые авторитетные эксперты.
КРЫМ НАШ! СКОРО И ВСЯ УКРАИНА БУДЕТ НАШЕЙ!
Re[2]: Вопрос про Poco library
От: Мёртвый Даун Россия  
Дата: 26.01.17 01:42
Оценка:
Здравствуйте, regnar, Вы писали:

R>Рокет саенс, берегите моск!


R>Также всё расжевано в тестах для каждого класса, но это ж блин не гуглится...


И куда это впихнуть? Абсолютно не впихуемое поделие...
Только Путин, и никого кроме Путина! О Великий и Могучий Путин — царь на веки веков, навсегда!
Смотрю только Соловьева и Михеева, для меня это самые авторитетные эксперты.
КРЫМ НАШ! СКОРО И ВСЯ УКРАИНА БУДЕТ НАШЕЙ!
Re[2]: Вопрос про Poco library
От: Мёртвый Даун Россия  
Дата: 26.01.17 09:47
Оценка:
Здравствуйте, AndrewJD, Вы писали:

AJD>Может лучше сразу в морг? А вместо этого изделия заиспользовать boost::asio?


Boost::asio — хорошее изделие, не спорю. Но у таких здоровых фреймворков большущий недостаток: если чтото пойдет не так, где читать? Куда обращаться? Быстро что-то исправить не получится, придется разбираться. И т.д.
Только Путин, и никого кроме Путина! О Великий и Могучий Путин — царь на веки веков, навсегда!
Смотрю только Соловьева и Михеева, для меня это самые авторитетные эксперты.
КРЫМ НАШ! СКОРО И ВСЯ УКРАИНА БУДЕТ НАШЕЙ!
Re[3]: Вопрос про Poco library
От: PM  
Дата: 26.01.17 16:30
Оценка: 6 (1) +1
Здравствуйте, Мёртвый Даун, Вы писали:

AJD>>Может лучше сразу в морг? А вместо этого изделия заиспользовать boost::asio?


МД>Boost::asio — хорошее изделие, не спорю. Но у таких здоровых фреймворков большущий недостаток: если чтото пойдет не так, где читать? Куда обращаться? Быстро что-то исправить не получится, придется разбираться. И т.д.


Если компилятор поддерживает C++11, то asio можно использовать без boost: http://think-async.com/Asio/AsioStandalone
Re[4]: Вопрос про Poco library
От: Nuzhny Россия https://github.com/Nuzhny007
Дата: 26.01.17 20:51
Оценка: +3
Здравствуйте, PM, Вы писали:

PM>Если компилятор поддерживает C++11, то asio можно использовать без boost: http://think-async.com/Asio/AsioStandalone


Да! Меня очень радует такая тенденция избавления от буста. И надеюсь, что она продолжится, а по-итогу будет мощная стандартная библиотека с сетью, файловой системой и другими необходимыми в повседневности библиотеками.
Re[3]: Вопрос про Poco library
От: rumit7  
Дата: 27.01.17 08:04
Оценка: +1
МД>Boost::asio — хорошее изделие, не спорю. Но у таких здоровых фреймворков большущий недостаток: если чтото пойдет не так, где читать?

Лет 5 назад, когда изучал boost и asio в частности, проблем с информацией не ощущал:

    официальная документация boost, читать и вникать;
    Antony Polukhin "Boost C++ Application Development";
    B.Karlsson "Beyond the C++ Standard Library — An Introduction to Boost";
    Boris Schäling "The Boost C++ Libraries";
    легкий онлайн учебник;
    John Torjo "Boost.Asio C++ Network Programming";
    блог asio samples, автор (Марат Абраров) кстати бывал на рсдн-е.

Наверное сейчас есть еще что-то, более актуальное.

МД>Куда обращаться?


    тот-же SO;
    группы https://groups.google.com/forum/?fromgroups#!forum/boost-list, https://groups.google.com/forum/?fromgroups#!forum/boost-developers-archive, там и сам автор отвечает
    да и здесь всегда ответят на вопросы

МД>Быстро что-то исправить не получится, придется разбираться. И т.д.


Да, быстро только ..., придется чуток пошевелить мозгами.
Re: Вопрос про Poco library
От: MasterZiv СССР  
Дата: 30.01.17 10:06
Оценка:
Здравствуйте, Мёртвый Даун, Вы писали:

МД>Кто-то юзал этот кусок дерьмища? Более ужасного я не встречал, но увы, досталось в одном проекте по наследству.


Это хорошая, боевая библиотека. Нечего ругаться.
То, что она нешаблонная -- ничего ещё не значит.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.