1#ifndef NEFORCE_NETWORK_TCP_TCP_SOCKET_HPP__
2#define NEFORCE_NETWORK_TCP_TCP_SOCKET_HPP__
13NEFORCE_BEGIN_NAMESPACE__
98 void open(
int family = AF_INET);
177 NEFORCE_NODISCARD
virtual bool is_ssl() const noexcept {
return false; }
184NEFORCE_END_NAMESPACE__
ip_socket()=default
默认构造函数
int native_handle_type
平台原生句柄类型
void send_all(memory_view< const char > data)
发送所有数据
void open(int family=AF_INET)
打开TCP socket
bool connect(const ip_address &endpoint, milliseconds timeout, bool was_blocking=true)
连接到远程服务器
tcp_socket()=default
默认构造函数
ssize_t send(memory_view< const char > data, milliseconds timeout, int flags=0)
带超时的发送数据
virtual NEFORCE_NODISCARD bool is_ssl() const noexcept
检查是否为SSL/TLS socket
virtual ssize_t receive(memory_view< char > buffer, int flags=0)
接收数据
virtual ssize_t send(memory_view< const char > data, int flags=0)
发送数据
vector< char > receive_all(size_t expected_size)
接收指定大小的所有数据
~tcp_socket() override=default
析构函数
tcp_socket(native_handle_type fd)
从原生句柄构造
duration< int64_t, milli > milliseconds
毫秒持续时间
NEFORCE_NODISCARD NEFORCE_ALWAYS_INLINE constexpr decltype(auto) data(Container &cont) noexcept(noexcept(cont.data()))
获取容器的底层数据指针