Hello,
Je suis actuellement en train de developper un serveur tcp avec boost asio et vs2010 sur win7.
ma classe Server:
fichier Header:
fichier Source:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 class Server { private: boost::asio::io_service &_io; boost::asio::ip::tcp::acceptor *acceptor; bool connected; boost::asio::ip::tcp::socket *_client; };
J'appel io.run() dans le main.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 Server::Server(boost::asio::io_service& io) : _io(io) { connected = false; } void Server::receiving() { boost::system::error_code error; acceptor = new tcp::acceptor(_io, tcp::endpoint(tcp::v4(), 14242)); _client = new tcp::socket(_io); connected = false; try { acceptor->async_accept(*_client, boost::bind(&Server::handle_accept, this, boost::asio::placeholders::error)); } catch(...) { } } void Server::handle_accept(const boost::system::error_code& error) { // problem appears here }
De plus, j'utilise boost asio en tant que client tcp dans une autre classe, avec le meme io_service, et ca fonctionne.
Lorsqu'un client se connecte a ce serveur, handle_accept est appele. Erreur dispose des valeurs suivantes:
m_val = 1;
m_cat = 0x00ab8d00 instance;
| [boost::asio::error::detail::misc_category] = {...}
| boost::noncopyable_::noncopyable = {...}
| __vfptr = 0x00a8bf18 const boost::asio::error::detail::misc_category::`vftable'
| [0] = 0x0098aaaa boost::asio::error::detail::misc_category::`scalar deleting destructor'(unsigned int)
| [1] = 0x0098b4e1 boost::asio::error::detail::misc_category::name(void)
| [2] = 0x0098b603 boost::asio::error::detail::misc_category::message(int)
| [3] = 0x0098e39e boost::system::error_category::default_error_condition(int)
| [4] = 0x0098bef0 boost::system::error_category::equivalent(class boost::system::error_code const &,int)
| [5] = 0x0098cb61 boost::system::error_category::equivalent(int,class boost::system::error_condition const &)
Quelqu'un peut il m'expliquer ce que cela signifie?
Pouvez-vous m'aider a resoudre ce soucis?
Merci !
Cyprien DIOT
France
Partager