Здравствуйте, гость ( Вход | Регистрация )
ViGOur | Дата 10.12.2009, 18:01 |
MInner | Дата 10.12.2009, 17:55 |
за моральную поддержку) soket и io_servise храню в указателях. И run() io_servise'y в конце программы дописал... |
|
ViGOur | Дата 7.12.2009, 23:00 |
Ты хоть скажи в чм они были, я пытался понять, но так и не понял! | |
Litkevich Yuriy | Дата 7.12.2009, 17:45 |
спасибо за что спасибо-то |
|
MInner | Дата 7.12.2009, 17:43 |
нашел ошибки... спасибо, можно тему закрыть вообщем-то)... | |
MInner | Дата 6.12.2009, 16:41 |
ругался на попытки в конструкторе копировать io_servise и сокета и правильно делал.... Еще прару блох нашел, компилируется, но теперь вылетает с исключением "Нарушение прав доступа при чтении" в создании критических секций в win_mutex.hpp .... |
|
MInner | Дата 6.12.2009, 3:34 |
CODE #include <iostream> #include <boost/thread/thread.hpp> #include <boost/threadpool.hpp> #include <boost/asio.hpp> #include <boost/shared_ptr.hpp> #include <boost/enable_shared_from_this.hpp> class Connecter { public: typedef boost::shared_ptr<Connecter> ConPtr; private: boost::asio::io_service t_io; boost::asio::ip::tcp::socket _sock; Connecter(boost::asio::io_service& ios) : t_io(ios), _sock(ios) {} boost::asio::streambuf _inbuffer; public: static ConPtr givePtr(boost::asio::io_service& io){ return ConPtr(new Connecter(io)); } boost::asio::ip::tcp::socket Socket(){return _sock;} void Read(){ // we do, what we want... boost::asio::read_until(_sock, _inbuffer, "\r\n\r\n" ); } void Analys(){}; }; class PortListner { boost::asio::ip::tcp::acceptor p_acc; boost::asio::io_service p_io; boost::threadpool::pool _pool; Connecter::ConPtr _cur_con; void WaitForPromt(){ //waits till something happens p_acc.async_accept(_cur_con->Socket(), boost::bind(&PortListner::ThreadOut, this, boost::asio::placeholders::error)); } void ThreadOut(boost::system::error_code& e){ //hey! there's something there! if (!e){ _pool.schedule(boost::bind(&Connecter::Read , _cur_con)); //put it into it's own way... _cur_con = Connecter::givePtr(p_io); WaitForPromt(); } } public: PortListner(int port, int thnum):_pool(thnum), p_acc(p_io) {} }; int pulnum = 5; int portnum = 80; int main(){ PortListner(portnum, pulnum); return 0; } ргается мол: error C2248: boost::noncopyable_::noncopyable::noncopyable: невозможно обратиться к private член, объявленному в классе "boost::noncopyable_::noncopyable" d:\dv\boost\include\boost\boost\asio\io_service.hpp 519 вроде не копирую его же ж... |
|
Просмотр темы полностью (откроется в новом окне) | |
Текстовая версия | Сейчас: 18.4.2024, 7:21 |