1#ifndef NEFORCE_NETWORK_UDP_SOCKET_HPP__
2#define NEFORCE_NETWORK_UDP_SOCKET_HPP__
18NEFORCE_BEGIN_NAMESPACE__
165 template <
typename Token,
193#ifdef NEFORCE_STANDARD_20
215 template <
typename Token, enable_if_t<!is_same_v<decay_t<Token>, function<
void(error_code,
size_t)>>,
int> = 0>
245#ifdef NEFORCE_STANDARD_20
264NEFORCE_END_NAMESPACE__
ip_socket()=default
默认构造函数
ip_address::family family
网络地址族类型
void async_receive_from(io_context &ctx, memory_view< char > buffer, function< void(error_code, size_t, ip_address)> handler)
异步接收数据报
auto async_send_to(io_context &ctx, memory_view< const char > data, const ip_address &endpoint, use_awaitable_t)
异步发送数据报—use_awaitable
void async_receive_from(io_context &ctx, memory_view< char > buffer, cancellation_slot &slot, function< void(error_code, size_t, ip_address)> handler)
异步接收数据报(带取消槽)
ssize_t send_to(memory_view< const char > data, const ip_address &endpoint, int flags=0)
向指定端点发送数据报
ssize_t send(memory_view< const char > data, int flags=0)
向已连接的端点发送数据
auto async_receive_from(io_context &ctx, memory_view< char > buffer, use_awaitable_t)
异步接收数据报—use_awaitable
auto async_receive_from(io_context &ctx, memory_view< char > buffer, use_future_t)
异步接收数据报—use_future
pair< ssize_t, ip_address > receive_from(memory_view< char > buffer, int flags=0)
接收数据报并获取发送方地址
ssize_t receive(memory_view< char > buffer, int flags=0)
从已连接的端点接收数据
void open(family f=family::INET4)
打开UDP socket
void async_send_to(io_context &ctx, memory_view< const char > data, const ip_address &endpoint, detached_t)
异步发送数据报—detached(即发即忘)
auto async_send_to(io_context &ctx, memory_view< const char > data, const ip_address &endpoint, use_future_t)
异步发送数据报—use_future
void async_receive_from(io_context &ctx, memory_view< char > buffer, detached_t)
异步接收数据报—detached(即发即忘)
void async_receive_from(io_context &ctx, memory_view< char > buffer, Token &&token)
异步接收数据报—任意可调用对象
void async_send_to(io_context &ctx, memory_view< const char > data, const ip_address &endpoint, Token &&token)
异步发送数据报—任意可调用对象
void async_send_to(io_context &ctx, memory_view< const char > data, const ip_address &endpoint, function< void(error_code, size_t)> handler)
异步发送数据报
udp_socket()=default
默认构造函数
void async_send_to(io_context &ctx, memory_view< const char > data, const ip_address &endpoint, cancellation_slot &slot, function< void(error_code, size_t)> 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 常量
constexpr decltype(auto) data(Container &cont) noexcept(noexcept(cont.data()))
获取容器的底层数据指针
typename enable_if< Test, T >::type enable_if_t
enable_if的便捷别名