本文整理汇总了C++中Acceptor::Accept方法的典型用法代码示例。如果您正苦于以下问题:C++ Acceptor::Accept方法的具体用法?C++ Acceptor::Accept怎么用?C++ Acceptor::Accept使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Acceptor
的用法示例。
在下文中一共展示了Acceptor::Accept方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: Open
bool NetPipe::Open(size_t buf_size)
{
assert(!m_reader.IsValid() && !m_writer.IsValid());
if(m_reader.IsValid() || m_writer.IsValid()) return false;
InetAddress addr;
addr.SetAddr(::htonl(INADDR_LOOPBACK));
addr.SetPort(0);
Acceptor acceptor;
CHECK_AND_RET( acceptor.Open(addr) );
CHECK_AND_RET( acceptor.GetLocalAddr(addr) );
CHECK_AND_RET( m_writer.Open() );
int opt_val = 0;
CHECK_AND_RET( m_writer.SetOpt(IPPROTO_TCP, TCP_NODELAY, &opt_val, sizeof(opt_val)) );
opt_val = buf_size;
CHECK_AND_RET( m_writer.SetOpt(SOL_SOCKET, SO_SNDBUF, &opt_val, sizeof(opt_val)) );
CHECK_AND_RET( Connector::Connect(m_writer, addr, 0) );
CHECK_AND_RET( acceptor.Accept(m_reader) );
assert(m_reader.IsValid() && m_writer.IsValid());
m_reader.CloseWriter();
m_writer.CloseReader();
CHECK_AND_RET( m_reader.Enable(NET_NONBLOCK) && m_writer.Enable(NET_NONBLOCK) );
return true;
}