【发布时间】:2011-02-23 19:18:18
【问题描述】:
我一直在尝试使用 tcp::acceptor 创建一个非阻塞 TCP 服务器。我在使用 BSD 套接字和 C(++) 之前已经这样做了,但无法使用 boost 设置非阻塞 I/O。
C(++):
#ifdef WIN32
int mode = 1;
ioctlsocket(Socket, FIONBIO, (u_long FAR *) &mode);
#else
fcntl(Socket, F_SETFL, fcntl(Socket, F_GETFL) | O_NONBLOCK);
#endif
我需要 TODO 下的等价物:
// reuse address
m_Socket.set_option( boost::asio::socket_base::reuse_address( true ) );
// TODO: set non blocking
// listen
m_Socket.listen( );
非常感谢!
【问题讨论】:
-
简单地使用 acceptor::async_accept() ?还是我错过了什么?
标签: c++ sockets boost-asio nonblocking