void TFtp::Session::HandlerWrite(const sys::error_code &e, size_t bytes) { if (e) { std::cerr << e.message() << std::endl; } AsyncAccept(); }
void TcpServer::Start() { _acceptor = std::make_unique<boost::asio::ip::tcp::acceptor>( *_ioService, boost::asio::ip::tcp::endpoint(boost::asio::ip::tcp::v4(), _port)); AsyncAccept(); }
TCPPort::TCPPort(boost::asio::io_service &io_service, unsigned port, PortListener *_listener, DataHandler &_handler) :BufferedPort(_listener, _handler), acceptor(io_service, boost::asio::ip::tcp::endpoint(boost::asio::ip::tcp::v4(), port)), connection(io_service) { acceptor.listen(1); AsyncAccept(); }
void TcpServer::AcceptHandler(std::shared_ptr<TcpPeerConnection> acceptedConn, const boost::system::error_code& ec) { if (ec != 0) { LOG() << "Accept error: " << ec << std::endl; // Review: call an error callback. } else { OnAccept(acceptedConn); } // Kick off another async accept to handle another connection. AsyncAccept(); }
void TCPPort::OnRead(const boost::system::error_code &ec, size_t nbytes) { if (ec == boost::asio::error::operation_aborted) /* this object has already been deleted; bail out quickly without touching anything */ return; if (ec) { connection.close(); AsyncAccept(); StateChanged(); Error(ec.message().c_str()); return; } DataReceived(input, nbytes); AsyncRead(); }
bool AcceptSocket::AsyncAccept(AcceptIOServerData *data, IOSocket *listenSocket) { return AsyncAccept(data, listenSocket, nullptr); }