NexusForce 1.0.0
A Modern C++ Library with extended functionality, web components, and utility libraries
载入中...
搜索中...
未找到
tcp_socket.hpp
浏览该文件的文档.
1#ifndef NEFORCE_NETWORK_TCP_TCP_SOCKET_HPP__
2#define NEFORCE_NETWORK_TCP_TCP_SOCKET_HPP__
3
10
13NEFORCE_BEGIN_NAMESPACE__
14
19
25
69class NEFORCE_API tcp_socket : public ip_socket {
70public:
74 tcp_socket() = default;
75
76 tcp_socket(tcp_socket&&) = default;
77 tcp_socket& operator=(tcp_socket&&) = default;
78
84 ip_socket(fd) {}
85
89 ~tcp_socket() override = default;
90
98 void open(int family = AF_INET);
99
112 bool connect(const ip_address& endpoint, milliseconds timeout, bool was_blocking = true);
113
125 virtual ssize_t send(memory_view<const char> data, int flags = 0);
126
138
148
160 virtual ssize_t receive(memory_view<char> buffer, int flags = 0);
161
171 vector<char> receive_all(size_t expected_size);
172
177 NEFORCE_NODISCARD virtual bool is_ssl() const noexcept { return false; }
178};
179 // TCP
181 // Network
183
184NEFORCE_END_NAMESPACE__
185#endif // NEFORCE_NETWORK_TCP_TCP_SOCKET_HPP__
IP地址封装类
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
毫秒持续时间
int64_t ssize_t
有符号大小类型
NEFORCE_NODISCARD NEFORCE_ALWAYS_INLINE constexpr decltype(auto) data(Container &cont) noexcept(noexcept(cont.data()))
获取容器的底层数据指针
IP协议族Socket基类
动态大小数组容器