NexusForce 1.0.0
A rigorously engineered full-stack C++ backend library.
载入中...
搜索中...
未找到
tcp_acceptor.hpp
浏览该文件的文档.
1#ifndef NEFORCE_NETWORK_TCP_TCP_ACCEPTOR_HPP__
2#define NEFORCE_NETWORK_TCP_TCP_ACCEPTOR_HPP__
3
10
12NEFORCE_BEGIN_NAMESPACE__
13
19
70class NEFORCE_API tcp_acceptor : public ip_socket {
71public:
73
74private:
79
80public:
84 tcp_acceptor() = default;
85
93 void open(const ip_address& endpoint, int backlog = SOMAXCONN);
94
104 NEFORCE_NODISCARD tcp_socket accept();
105
116
126
134
141 template <typename Token, enable_if_t<!is_same_v<decay_t<Token>, function<void(error_code, tcp_socket)>>, int> = 0>
142 void async_accept(io_context& ctx, Token&& token) {
144 }
145
151 decltype(auto) async_accept(io_context& ctx, use_future_t /*unused*/) {
153 async_accept(ctx, function<void(error_code, tcp_socket)>(result.get_handler()));
154 return result.get();
155 }
156
161 void async_accept(io_context& ctx, detached_t /*unused*/) {
163 }
164
165#ifdef NEFORCE_STANDARD_20
171 decltype(auto) async_accept(io_context& ctx, use_awaitable_t /*unused*/) {
173 async_accept(ctx, function<void(error_code, tcp_socket)>(result.get_handler()));
174 return result.get();
175 }
176#endif
177};
178 // TCP
180
181NEFORCE_END_NAMESPACE__
182#endif // NEFORCE_NETWORK_TCP_TCP_ACCEPTOR_HPP__
函数包装器主模板声明
统一异步操作核心
IP地址封装类
virtual void connect(const ip_address &endpoint)
连接到远程端点(TCP客户端)
ip_socket()=default
默认构造函数
bool shutdown_both() noexcept
关闭双向通信
bool shutdown_receive() noexcept
关闭接收方向
void open(family f, type t=type::STREAM, protocol p=protocol::AUTO)
打开socket
bool shutdown_send() noexcept
关闭发送方向
tcp_socket accept()
接受客户端连接(阻塞模式)
void async_accept(io_context &ctx, Token &&token)
异步接受—任意可调用对象
tcp_acceptor()=default
默认构造函数
optional< tcp_socket > accept_nonblock()
接受客户端连接(非阻塞模式)
void open(const ip_address &endpoint, int backlog=SOMAXCONN)
打开并开始监听
decltype(auto) async_accept(io_context &ctx, use_future_t)
异步接受—use_future
void async_accept(io_context &ctx, detached_t)
异步接受—detached(即发即忘)
void async_accept(io_context &ctx, cancellation_slot &slot, function< void(error_code, tcp_socket)> handler)
异步接受连接(带取消槽)
decltype(auto) async_accept(io_context &ctx, use_awaitable_t)
异步接受—use_awaitable
void async_accept(io_context &ctx, function< void(error_code, tcp_socket)> handler)
异步接受客户端连接
constexpr T && forward(remove_reference_t< T > &x) noexcept
完美转发左值
constexpr use_awaitable_t use_awaitable
use_awaitable 常量
constexpr use_future_t use_future
use_future 常量
完成令牌 trait 主模板
fire-and-forget 完成令牌
协程 awaitable 完成令牌
返回 future<T> 的完成令牌
TCP Socket实现