本文整理汇总了C++中boost::asio::ip::tcp::acceptor::async_accept方法的典型用法代码示例。如果您正苦于以下问题:C++ acceptor::async_accept方法的具体用法?C++ acceptor::async_accept怎么用?C++ acceptor::async_accept使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类boost::asio::ip::tcp::acceptor
的用法示例。
在下文中一共展示了acceptor::async_accept方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: start_listening
void start_listening() {
using boost::asio::ip::tcp;
system::error_code error;
tcp::resolver resolver(service_);
tcp::resolver::query query(address_, port_);
tcp::resolver::iterator endpoint_iterator = resolver.resolve(query, error);
if (error) {
NETWORK_MESSAGE("Error resolving address: " << address_ << ':' << port_);
return;
}
tcp::endpoint endpoint = *endpoint_iterator;
acceptor_.open(endpoint.protocol(), error);
if (error) {
NETWORK_MESSAGE("Error opening socket: " << address_ << ':' << port_ << " -- reason: '" << error << '\'');
return;
}
socket_options_base::acceptor_options(acceptor_);
acceptor_.bind(endpoint, error);
if (error) {
NETWORK_MESSAGE("Error binding to socket: " << address_ << ':' << port_ << " -- reason: '" << error << '\'');
return;
}
acceptor_.listen(tcp::socket::max_connections, error);
if (error) {
NETWORK_MESSAGE("Error listening on socket: " << address_ << ':' << port_ << " -- reason: '" << error << '\'');
return;
}
new_connection.reset(new sync_connection<Tag,Handler>(service_, handler_));
acceptor_.async_accept(new_connection->socket(),
boost::bind(&sync_server_base<Tag,Handler>::handle_accept,
this, boost::asio::placeholders::error));
listening_ = true;
}
示例2: StartAccept
void StartAccept()
{
NewConnection = boost::make_shared<Private::Connection, boost::asio::io_service &>(IoService);
Acceptor.async_accept(NewConnection->GetSocket(),
boost::bind(&EchoServer::HandleAccept, this,
boost::asio::placeholders::error));
}
示例3: start
void start()
{
session * new_session( new session( io_service_) );
acceptor_.async_accept(
new_session->socket(),
boost::bind( & server::handle_accept_, this->shared_from_this(),
new_session, boost::asio::placeholders::error) );
}
示例4: handle_accept
inline void server::handle_accept(const boost::system::error_code& e) {
if (!e) {
new_connection_->start();
new_connection_.reset(new connection(io_service_, request_handler_));
acceptor_.async_accept(new_connection_->socket(),
boost::bind(&server::handle_accept, this,
boost::asio::placeholders::error));
}
}
示例5: start_accept
void start_accept()
{
boost::shared_ptr<session> new_session =
boost::make_shared<session>(boost::ref(io_service_));
acceptor_.async_accept(new_session->socket_,
boost::bind(&server::handle_accept, this,
boost::asio::placeholders::error,
new_session));
}
示例6: handle_accept
void handle_accept(boost::system::error_code const & ec) {
if (!ec) {
socket_options_base::socket_options(new_connection->socket());
new_connection->start();
new_connection.reset(new sync_connection<Tag,Handler>(service_, handler_));
acceptor_.async_accept(new_connection->socket(),
boost::bind(&sync_server_base<Tag,Handler>::handle_accept,
this, boost::asio::placeholders::error));
}
}
示例7: handle_accept
void handle_accept(boost::system::error_code const& ec) {
if (ec) {
}
socket_options_base::socket_options(new_connection->socket());
new_connection->start();
new_connection.reset(new sync_connection<Tag, Handler>(service_, handler_));
auto self = this->shared_from_this();
acceptor_.async_accept(
new_connection->socket(),
[=] (boost::system::error_code const &ec) { self->handle_accept(); });
}
示例8: startAccept
void startAccept()
{
if (mAvailableConnections > 0) {
--mAvailableConnections;
SC_TcpConnection::pointer newConnection (new SC_TcpConnection(mWorld, ioService, this));
acceptor.async_accept(newConnection->socket,
boost::bind(&SC_TcpInPort::handleAccept, this, newConnection,
boost::asio::placeholders::error));
}
}
示例9: handle_accept
/// Handle completion of an asynchronous accept operation.
void handle_accept(const boost::system::error_code& e) {
if (handle_accept_internal(e, m_new_channel)) {
m_new_channel =
tcp_channel<Handler>::create(this->m_io_service,
m_new_channel->handler(), channel<Handler>::TCP);
m_acceptor.async_accept(
static_cast<tcp_channel<Handler>&>(*m_new_channel).socket(),
std::bind(&tcp_server<Handler>::handle_accept,
this, boost::asio::placeholders::error));
}
}
示例10: start_accept
void start_accept()
{
session::pointer session(
session::create(
io_service_, game_));
acceptor_.async_accept(
session->socket(),
boost::bind(
&server::handle_accept, this, session,
boost::asio::placeholders::error));
}
示例11:
void
on_accept(error_code ec)
{
if(! acceptor_.is_open())
return;
maybe_throw(ec, "accept");
static int id_ = 0;
std::thread{lambda{++id_, *this, std::move(sock_)}}.detach();
acceptor_.async_accept(sock_,
std::bind(&http_sync_server::on_accept, this,
asio::placeholders::error));
}
示例12: assert
inline accepting_source::element_type *
accepting_source::copy_next(iterator_range<element_type *> destination)
{
assert(m_acceptor);
assert(m_yield);
for (auto &client : destination)
{
assert(m_acceptor);
client = std::make_shared<boost::asio::ip::tcp::socket>(
m_acceptor->get_io_service());
assert(m_yield);
m_acceptor->async_accept(*client, *m_yield);
}
return destination.end();
}
示例13: accept
void accept(boost::asio::io_service &service,
boost::asio::ip::tcp::acceptor &a,
tell::db::ClientManager<void>& clientManager,
int16_t numWarehouses) {
auto conn = new tpcc::Connection(service, clientManager, numWarehouses);
a.async_accept(conn->socket(), [conn, &service, &a, &clientManager, numWarehouses](const boost::system::error_code &err) {
if (err) {
delete conn;
LOG_ERROR(err.message());
return;
}
conn->run();
accept(service, a, clientManager, numWarehouses);
});
}
示例14: start_accept
void start_accept()
{
using namespace std;
using namespace boost::asio::ip;
auto connection = make_shared<tcp_connection>(_acceptor.get_io_service());
_acceptor.async_accept(connection->socket(), [connection, this](const boost::system::error_code &ec)
{
if (!ec)
{
connection->send_string();
}
this->start_accept();
});
}
示例15: handle_accept
void cia_server::handle_accept(cia_client::ptr client, const boost::system::error_code & err)
{
if (err)
{
BOOST_LOG_SEV(cia_g_logger, Debug) << "服务端已停止接收新的客户端连接";
return;
}
// BOOST_LOG_SEV(cia_g_logger, Debug) << "服务器接收到新的客户端连接";
client->start();
cia_client::ptr new_client = cia_client::new_(m_io_service, m_config_server);
int queue_size_ = m_config_server->get_call_out_obj_queue_size();
for (int x = 0; x < queue_size_; x++)
{
new_client->put_into_call_out_obj_queue(boost::make_shared<call_out_obj>(new_client, m_base_voice_card, m_io_service));
}
// BOOST_LOG_SEV(cia_g_logger, Debug) << "服务器开始准备接收新的连接";
m_acceptor_.async_accept(new_client->sock(), boost::bind(&cia_server::handle_accept, this, new_client, _1));
}