Hi guys, this is my first post to this mail list. Forgive my noob questions, I am new to boost.

I have read some documentations but still dont understand how io_service works.

My problem is that I need two functions in my server class, listen() and handle()
listen() is to accept all incoming connections and bind them with a handler function which accept a socket as argument.

and handler will simply call io_service.run()

=========================
class Server
{
  io_service IOService;
  std::vector<boost:: ... :: socket> SocketVector;

  listen()
  {
     //blocking accept all incoming connection and bind socket with handleSocket
  }

  HandleRequest()
  {
     //io_service.run();
  }
}
============================

handleSocket(*Socket)
{
   //handleSocket;
}
==============================

main()
{
  boost::thread t1(&Server::listen, &myServer);
  boost::thread t2(&Server::HandleRequest, &myServer);
}
====================================

my understanding is that

everytime you instantiate a new socket object with a constructor including a io_service object, this socket object is associated with the io_service object, since I only have one io_service object, these socket object will be executed when I call io_service.run()but, the question is, how do i assign handle_function to those socket, I saw people use acceptor.async_accept(socket, boost::bind(handler, &socket)) like this, But I want to use accept rather than async_accept(), but the accept() function cant be used to bind a handler function to this socket



Thank you