int main(const std::vector<std::string>& args) { if (_helpRequested) { displayHelp(); } else { // get parameters from configuration file unsigned short port = (unsigned short) config().getInt("EchoServer.port", 9977); // set-up a server socket ServerSocket svs(port); // set-up a SocketReactor... SocketReactor reactor; // ... and a SocketAcceptor SocketAcceptor<EchoServiceHandler> acceptor(svs, reactor); // run the reactor in its own thread so that we can wait for // a termination request Thread thread; thread.start(reactor); // wait for CTRL-C or kill waitForTerminationRequest(); // Stop the SocketReactor reactor.stop(); thread.join(); } return Application::EXIT_OK; }
void SocketReactorTest::testSocketConnectorFail() { SocketReactor reactor; SocketAddress sa("192.168.168.192", 12345); FailConnector connector(sa, reactor); assert (!connector.failed()); assert (!connector.shutdown()); reactor.run(); assert (connector.failed()); assert (connector.shutdown()); }
void SocketReactorTest::testSocketConnectorTimeout() { ClientServiceHandler::setCloseOnTimeout(true); SocketAddress ssa; ServerSocket ss(ssa); SocketReactor reactor; SocketAddress sa("localhost", ss.address().port()); SocketConnector<ClientServiceHandler> connector(sa, reactor); reactor.run(); assert (ClientServiceHandler::timeout()); }
void SocketReactorTest::testSocketReactor() { SocketAddress ssa; ServerSocket ss(ssa); SocketReactor reactor; SocketAcceptor<EchoServiceHandler> acceptor(ss, reactor); SocketAddress sa("localhost", ss.address().port()); SocketConnector<ClientServiceHandler> connector(sa, reactor); reactor.run(); std::string data(ClientServiceHandler::data()); assert (data.size() == 1024); }
void SocketReactorTest::testSocketReactor() { SocketAddress ssa; ServerSocket ss(ssa); SocketReactor reactor; SocketAcceptor<EchoServiceHandler> acceptor(ss, reactor); SocketAddress sa("127.0.0.1", ss.address().port()); SocketConnector<ClientServiceHandler> connector(sa, reactor); ClientServiceHandler::setOnce(true); ClientServiceHandler::resetData(); reactor.run(); std::string data(ClientServiceHandler::data()); assert (data.size() == 1024); assert (!ClientServiceHandler::readableError()); assert (!ClientServiceHandler::writableError()); assert (!ClientServiceHandler::timeoutError()); }