简体   繁体   English

boost :: asio :: ip :: tcp :: acceptor如何与TCP_DEFER_ACCEPT和TCP_FASTOPEN一起使用

[英]How boost::asio::ip::tcp::acceptor work with TCP_DEFER_ACCEPT and TCP_FASTOPEN

How boost::asio::ip::tcp::acceptor work with TCP_DEFER_ACCEPT and TCP_FASTOPEN, boost :: asio :: ip :: tcp :: acceptor如何与TCP_DEFER_ACCEPT和TCP_FASTOPEN一起使用,

When I use pure C, I can set some param like TCP_DEFER_ACCEPT and TCP_FASTOPEN, to improve tcp/ip performance,like this: setsockopt(serverSock, IPPROTO_TCP, TCP_DEFER_ACCEPT, &soValue, sizeof(soValue)); 当我使用纯C时,我可以设置一些像TCP_DEFER_ACCEPT和TCP_FASTOPEN这样的参数,以提高tcp / ip性能,如下所示:setsockopt(serverSock,IPPROTO_TCP,TCP_DEFER_ACCEPT,&soValue,sizeof(soValue)); setsockopt( serverSock, SOL_TCP, TCP_FASTOPEN, &qlen, sizeof(qlen)); setsockopt(serverSock,SOL_TCP,TCP_FASTOPEN,&qlen,sizeof(qlen)); But when I use boost::asio,Icould not find any way to set TCP_DEFER_ACCEPT and TCP_FASTOPEN, who can tell me how to solve it? 但是当我使用boost :: asio时,我找不到任何设置TCP_DEFER_ACCEPT和TCP_FASTOPEN的方法,谁能告诉我如何解决它? Thank you. 谢谢。

I got it. 我知道了。 use boost::asio::ip::tcp::acceptor::native_handle(). 使用boost :: asio :: ip :: tcp :: acceptor :: native_handle()。

example: 例:

std::shared_ptr<boost::asio::ip::tcp::acceptor>   sp_acceptor( std::make_shared<boost::asio::ip::tcp::acceptor>( d_ios_last0 ) );
sp_acceptor->open( server_endpoint.protocol() );
sp_acceptor->set_option( boost::asio::ip::tcp::acceptor::reuse_address( true  ) );
if( bool_tcp_defer_accept )  {
  int soValue = 1;
  if( 0 == setsockopt( sp_acceptor->native_handle(), IPPROTO_TCP, TCP_DEFER_ACCEPT, &soValue, sizeof(soValue)) )  {
    log_message( "TCP_DEFER_ACCEPT set success." );
    }
  else  {
    warn_message( "TCP_DEFER_ACCEPT set failed." );
    }
  }
sp_acceptor->bind( server_endpoint );
if( bool_tcp_fastopen )  {
  int qlen=5;
  if( 0==setsockopt( sp_acceptor->native_handle(), SOL_TCP, TCP_FASTOPEN, &qlen, sizeof(qlen)) ) {
    log_message( "TCP_FASTOPEN set success." );
    }
  else  {
    warn_message( "TCP_FASTOPEN set failed." );
    }
  }
sp_acceptor->listen( 8192 );

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 boost :: asio :: ip :: tcp :: acceptor上的分段错误 - Segmentation fault on boost::asio::ip::tcp::acceptor 如何使boost :: asio :: ip :: tcp :: acceptor永远永久? - How to make boost::asio::ip::tcp::acceptor block forever? C++ boost::asio::ip::tcp::acceptor 有时不接受连接器? - C++ boost::asio::ip::tcp::acceptor sometimes doesn't accept connector? boost::asio::ip::tcp::acceptor 在使用 async_accept 接收连接请求时终止应用程序 - boost::asio::ip::tcp::acceptor terminates application when receiving connection request using async_accept Boost-asio在单个(TCP)接收器上侦听多个IP地址 - Boost-asio listening to multiple IP Addresses on a single (TCP) acceptor 如何接受 boost::asio::ssl::stream<boost::asio::ip::tcp::socket> 作为 boost::asio::ip::tcp::socket 类型的参数 - How to accept boost::asio::ssl::stream<boost::asio::ip::tcp::socket> as an argument of type boost::asio::ip::tcp::socket 提升Asio tcp :: acceptor访问冲突异常 - Boost Asio tcp::acceptor access violation exception 提升 asio tcp ip 写入 - boost asio tcp ip write 从TCP迁移到udp时,“ acceptor”不是“ boost :: asio :: ip :: udp”的成员 - ‘acceptor’ is not a member of ‘boost::asio::ip::udp’ while migration from tcp to udp 如何获取boost :: asio :: ip :: tcp :: socket的IP地址? - How to get IP address of boost::asio::ip::tcp::socket?
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM