Acceptor::Acceptor(const InetAddress& listenAddress, IOService& service, uint32_t threadNums) : _io_service(service), _acceptor(service.service()), _strand(service.service()), _listenAddr(listenAddress), _listenning(false), _threadNums(threadNums) { std::cout << "Acceptor starting ..." << std::endl; std::cout << " >> Listen Address = " << _listenAddr.toIpHost() << std::endl; std::cout << " >> I/O-Thread Numbers = " << threadNums << std::endl; //绑定地址 boost::asio::ip::address address; address.from_string(_listenAddr.host()); tcp::endpoint endpoint(address, _listenAddr.port()); _acceptor.open(tcp::v4()); _acceptor.bind(endpoint); std::cout << "Acceptor started." << std::endl; }
Acceptor::Acceptor(const InetAddress& listenAddress, IOService& service, uint32_t threadNums) : _io_service(service), _acceptor(service.service()), _strand(service.service()), _listenAddr(listenAddress), _listenning(false), _threadNums(threadNums) { debug_log("Acceptor starting ..."); debug_log(" >> Listen Address = %s", _listenAddr.toIpHost().c_str()); debug_log(" >> I/O-Thread Numbers = %d", threadNums); //绑定地址 boost::asio::ip::address address; address.from_string(_listenAddr.host()); tcp::endpoint endpoint(address, _listenAddr.port()); _acceptor.open(tcp::v4()); _acceptor.bind(endpoint); debug_log("Acceptor started."); }
TcpServer::TcpServer(const InetAddress& listenAddress, IOService& service, uint32_t threadNums) : _io_service(service), _acceptor(listenAddress, service, threadNums), _started(false), _signals(service.service()) { debug_log("Server starting ..."); //Ìí¼Ó²¶×½ÐźŠ_signals.add(SIGINT); _signals.add(SIGTERM); #if defined(SIGQUIT) _signals.add(SIGQUIT); #endif _signals.async_wait(std::bind(&TcpServer::stop, this)); _acceptor.registerAcceptedEvent(BIND_EVENT_HANDLER(&TcpServer::acceptedHandler, this)); }
TcpServer::TcpServer(const InetAddress& listenAddress, IOService& service, uint32_t threadNums) : _io_service(service), _acceptor(listenAddress, service, threadNums), _started(false), _signals(service.service()) { std::cout << "Server starting ..." << std::endl; //添加捕捉信号 _signals.add(SIGINT); _signals.add(SIGTERM); #if defined(SIGQUIT) _signals.add(SIGQUIT); #endif _signals.async_wait(std::bind(&TcpServer::stop, this)); _acceptor.setAcceptedCallback( std::bind(&TcpServer::newConnectionCallback, this, std::placeholders::_1) ); }
Socket::Socket(IOService& service) : _socket(service.service()), _strand(service.service()), _io_service(service) { }