|
fastdo
0.6.16
|
TCP/IP异步套接字 更多...
#include <eiennet_async.hpp>


静态 Public 成员函数 | |
| static winux::SharedPointer< AsyncSocket > | New (IoService &ioServ, int sock, bool isNewSock=false) |
| static winux::SharedPointer< AsyncSocket > | New (IoService &ioServ) |
静态 Public 成员函数 继承自 eiennet::AsyncSocket | |
| static winux::SharedPointer< AsyncSocket > | New (IoService &ioServ, int sock=-1, bool isNewSock=false) |
| static winux::SharedPointer< AsyncSocket > | New (IoService &ioServ, AddrFamily af, SockType sockType, Protocol proto) |
静态 Public 成员函数 继承自 eiennet::Socket | |
| static int | ErrNo () |
| 从errno获取错误码 更多... | |
Protected 成员函数 | |
| AsyncSocket (IoService &ioServ, int sock, bool isNewSock=false) | |
| AsyncSocket (IoService &ioServ) | |
Protected 成员函数 继承自 eiennet::AsyncSocket | |
| AsyncSocket (IoService &ioServ, int sock=-1, bool isNewSock=false) | |
| 构造函数1 更多... | |
| AsyncSocket (IoService &ioServ, AddrFamily af, SockType sockType, Protocol proto) | |
| 构造函数2 更多... | |
| virtual void | onError (winux::SharedPointer< AsyncSocket > sock) |
Protected 成员函数 继承自 eiennet::Socket | |
| bool | _tryCreate (AddrFamily af, bool hasAf, SockType sockType, bool hasSockType, Protocol proto, bool hasProto) |
| 如果未创建Socket则尝试创建。如果创建成功或已创建则返回true,如果创建失败则返回false 更多... | |
| void | _membersInit () |
| void | _resetManaged () |
Protected 成员函数 继承自 winux::EnableSharedFromThis< AsyncSocket > | |
| constexpr | EnableSharedFromThis () noexcept |
| EnableSharedFromThis (EnableSharedFromThis const &) noexcept | |
| EnableSharedFromThis & | operator= (EnableSharedFromThis const &) noexcept |
额外继承的成员函数 | |
Public 成员函数 继承自 eiennet::AsyncSocket | |
| winux::SharedPointer< AsyncSocket > | accept (EndPoint *ep=nullptr) |
| void | setDataPtr (void *data) |
| 设置套接字关联数据 更多... | |
| void * | getDataPtr () const |
| 获取套接字关联数据 更多... | |
| template<typename _Ty > | |
| _Ty * | getDataPtr () const |
| 获取套接字关联数据 更多... | |
| IoService & | getService () const |
| 获取IO服务对象 更多... | |
| void | acceptAsync (IoAcceptCtx::OkFunction cbOk, winux::uint64 timeoutMs=-1, IoAcceptCtx::TimeoutFunction cbTimeout=nullptr) |
| 接受客户连接(异步) 更多... | |
| void | connectAsync (EndPoint const &ep, IoConnectCtx::OkFunction cbOk, winux::uint64 timeoutMs=-1, IoConnectCtx::TimeoutFunction cbTimeout=nullptr) |
| 连接服务器(异步) 更多... | |
| void | recvUntilSizeAsync (size_t targetSize, IoRecvCtx::OkFunction cbOk, winux::uint64 timeoutMs=-1, IoRecvCtx::TimeoutFunction cbTimeout=nullptr) |
| 接收直到指定大小的数据(异步) 更多... | |
| void | recvAsync (IoRecvCtx::OkFunction cbOk, winux::uint64 timeoutMs=-1, IoRecvCtx::TimeoutFunction cbTimeout=nullptr) |
| 接收数据(异步) 更多... | |
| void | sendAsync (void const *data, size_t size, IoSendCtx::OkFunction cbOk, winux::uint64 timeoutMs=-1, IoSendCtx::TimeoutFunction cbTimeout=nullptr) |
| 发送数据(异步) 更多... | |
| void | sendAsync (winux::Buffer const &data, IoSendCtx::OkFunction cbOk, winux::uint64 timeoutMs=-1, IoSendCtx::TimeoutFunction cbTimeout=nullptr) |
| 发送数据(异步) 更多... | |
| void | recvFromUntilSizeAsync (size_t targetSize, IoRecvFromCtx::OkFunction cbOk, winux::uint64 timeoutMs=-1, IoRecvFromCtx::TimeoutFunction cbTimeout=nullptr) |
| 无连接,接收直到指定大小的数据(异步) 更多... | |
| void | recvFromAsync (IoRecvFromCtx::OkFunction cbOk, winux::uint64 timeoutMs=-1, IoRecvFromCtx::TimeoutFunction cbTimeout=nullptr) |
| 无连接,接收数据(异步) 更多... | |
| void | sendToAsync (EndPoint const &ep, void const *data, size_t size, IoSendToCtx::OkFunction cbOk, winux::uint64 timeoutMs=-1, IoSendToCtx::TimeoutFunction cbTimeout=nullptr) |
| 无连接,发送数据(异步) 更多... | |
| void | sendToAsync (EndPoint const &ep, winux::Buffer const &data, IoSendToCtx::OkFunction cbOk, winux::uint64 timeoutMs=-1, IoSendToCtx::TimeoutFunction cbTimeout=nullptr) |
| 无连接,发送数据(异步) 更多... | |
| void | onErrorHandler (ErrorHandlerFunction handler) |
Public 成员函数 继承自 eiennet::Socket | |
| Socket (int sock=-1, bool isNewSock=false) | |
| 构造函数1,包装现有socket描述符 更多... | |
| Socket (AddrFamily af, SockType sockType, Protocol proto) | |
| 构造函数2,指定socket的'地址簇','类型','协议' 更多... | |
| virtual | ~Socket () |
| 移动构造函数 更多... | |
| AddrFamily | getAddrFamily () const |
| 获取Socket的create()参数:'地址簇' 更多... | |
| void | setAddrFamily (AddrFamily af) |
| 指定Socket的create()参数:'地址簇' 更多... | |
| SockType | getSockType () const |
| 获取Socket的create()参数:'类型' 更多... | |
| void | setSockType (SockType sockType) |
| 指定Socket的create()参数:'类型' 更多... | |
| Protocol | getProtocol () const |
| 获取Socket的create()参数:'协议' 更多... | |
| void | setProtocol (Protocol proto) |
| 指定Socket的create()参数:'协议' 更多... | |
| void | getParams (AddrFamily *af, SockType *sockType, Protocol *proto) |
| 获取Socket的create()参数:'地址簇','类型','协议' 更多... | |
| void | setParams (AddrFamily af, SockType sockType, Protocol proto) |
| 指定Socket的create()参数:'地址簇','类型','协议' 更多... | |
| bool | create (AddrFamily af, SockType sockType, Protocol proto) |
| 根据'地址簇','类型','协议'创建一个socket 更多... | |
| bool | create () |
| 根据内部存储的'地址簇','类型','协议'创建一个socket 更多... | |
| int | close () |
| 关闭socket描述符 更多... | |
| int | shutdown (int how=SdSend) |
| 关掉socket的相应操作,但并不会close套接字。 更多... | |
| int | send (void const *data, size_t size, int msgFlags=MsgDefault) |
| 发送数据。返回已发送大小,出错返回-1。 更多... | |
| int | send (winux::AnsiString const &data, int msgFlags=MsgDefault) |
| 发送数据。返回已发送大小,出错返回-1。 更多... | |
| int | send (winux::Buffer const &data, int msgFlags=MsgDefault) |
| 发送数据。返回已发送大小,出错返回-1。 更多... | |
| bool | sendUntil (size_t targetSize, void const *data, int msgFlags=MsgDefault) |
| 发送数据,直到发送完指定大小的数据。 更多... | |
| bool | sendUntil (winux::AnsiString const &data, int msgFlags=MsgDefault) |
| 发送字符串,直到发送完该长度的字符串。 更多... | |
| bool | sendUntil (winux::Buffer const &data, int msgFlags=MsgDefault) |
| 发送缓冲区,直到发送完该大小的缓冲区。 更多... | |
| int | sendWaitUntil (size_t targetSize, void const *data, size_t *hadSent, double sec, int *rcWait, FunctionSuccessCallback eachSuccessCallback=FunctionSuccessCallback(), void *param=nullptr, int msgFlags=MsgDefault) |
| 发送数据,直到发送完指定大小的数据或超时。 更多... | |
| int | sendWaitUntil (winux::AnsiString const &data, size_t *hadSent, double sec, int *rcWait, FunctionSuccessCallback eachSuccessCallback=FunctionSuccessCallback(), void *param=nullptr, int msgFlags=MsgDefault) |
| int | sendWaitUntil (winux::Buffer const &data, size_t *hadSent, double sec, int *rcWait, FunctionSuccessCallback eachSuccessCallback=FunctionSuccessCallback(), void *param=nullptr, int msgFlags=MsgDefault) |
| template<typename _PodType > | |
| bool | sendUntilType (_PodType const &v, size_t size=sizeof(_PodType), int msgFlags=MsgDefault) |
发送一个Plain of Data类型的变量,若成功返回true,否则返回false。 更多... | |
| int | recv (void *buf, size_t size, int msgFlags=MsgDefault) |
| 尝试接收size大小数据。返回实际接收的数据大小,出错返回-1。 更多... | |
| winux::Buffer | recv (size_t size, int msgFlags=MsgDefault) |
| 尝试接收size大小数据,返回实际收到的数据Buffer。 更多... | |
| bool | recvUntilTarget (winux::AnsiString const &target, winux::GrowBuffer *data, winux::GrowBuffer *extraData, int msgFlags=MsgDefault) |
| 接收数据,直到碰到target指定的数据。data返回接收到的数据,data里可以已有部分数据,extraData返回额外接收的数据。 更多... | |
| int | recvWaitUntilTarget (winux::AnsiString const &target, winux::GrowBuffer *data, winux::GrowBuffer *extraData, size_t *hadRead, size_t *startpos, size_t *pos, double sec, int *rcWait, FunctionSuccessCallback eachSuccessCallback=FunctionSuccessCallback(), void *param=nullptr, int msgFlags=MsgDefault) |
| 接收数据,直到碰到target指定的数据或者超时。 更多... | |
| bool | recvUntilSize (size_t targetSize, winux::GrowBuffer *data, int msgFlags=MsgDefault) |
| 接收数据,直到收到指定大小的数据。data返回接收到的数据。 更多... | |
| int | recvWaitUntilSize (size_t targetSize, winux::GrowBuffer *data, size_t *hadRead, double sec, int *rcWait, FunctionSuccessCallback eachSuccessCallback=FunctionSuccessCallback(), void *param=nullptr, int msgFlags=MsgDefault) |
| 接收数据,直到收到指定大小的数据或者超时。 更多... | |
| template<typename _PodType > | |
| bool | recvUntilType (_PodType *v, size_t size=sizeof(_PodType), int msgFlags=MsgDefault) |
接收一个Plain of Data类型的变量,若成功返回true,否则返回false。 更多... | |
| winux::Buffer | recvAvail (int msgFlags=MsgDefault) |
| 接收不用阻塞即可接收的数据,返回收到的数据Buffer。 更多... | |
| winux::Buffer | recvWaitAvail (double sec, int *rcWait, int msgFlags=MsgDefault) |
| 接收已到达的数据,如果没有到达数据则等待有数据到达或超过指定时间,返回收到的数据Buffer。 更多... | |
| int | sendTo (EndPoint const &ep, void const *data, size_t size, int msgFlags=MsgDefault) |
| 无连接模式发送数据到指定端点。返回已发送大小,出错返回-1。 更多... | |
| int | sendTo (EndPoint const &ep, winux::AnsiString const &data, int msgFlags=MsgDefault) |
| 无连接模式发送数据到指定端点。返回已发送大小,出错返回-1。 更多... | |
| int | sendTo (EndPoint const &ep, winux::Buffer const &data, int msgFlags=MsgDefault) |
| 无连接模式发送数据到指定端点。返回已发送大小,出错返回-1。 更多... | |
| int | recvFrom (EndPoint *ep, void *buf, size_t size, int msgFlags=MsgDefault) |
| 无连接模式接收数据。返回已接收的大小,出错返回-1。 更多... | |
| winux::Buffer | recvFrom (EndPoint *ep, size_t size, int msgFlags=MsgDefault) |
| 无连接模式接收数据。返回实际收到的数据Buffer。 更多... | |
| bool | connect (EndPoint const &ep) |
| 连接服务器 更多... | |
| bool | bind (EndPoint const &ep) |
| 绑定地址。若套接字尚未创建则创建套接字 更多... | |
| bool | listen (int backlog) |
| 监听 更多... | |
| bool | accept (int *sock, EndPoint *ep=NULL) |
| 接受一个客户连接 更多... | |
| winux::SharedPointer< Socket > | accept (EndPoint *ep=NULL) |
| 接受一个客户连接 更多... | |
| int | getRecvBufSize () const |
| 获取接收缓冲区大小 更多... | |
| bool | setRecvBufSize (int optval) |
| 设置接收缓冲区大小 更多... | |
| int | getSendBufSize () const |
| 获取发送缓冲区大小 更多... | |
| bool | setSendBufSize (int optval) |
| 设置发送缓冲区大小 更多... | |
| winux::uint32 | getRecvTimeout () const |
| 获取接收超时(ms) 更多... | |
| bool | setRecvTimeout (winux::uint32 optval) |
| 设置接收超时(ms) 更多... | |
| winux::uint32 | getSendTimeout () const |
| 获取发送超时(ms) 更多... | |
| bool | setSendTimeout (winux::uint32 optval) |
| 设置发送超时(ms) 更多... | |
| bool | getReUseAddr () const |
| 获取是否开启了重用地址 更多... | |
| bool | setReUseAddr (bool optval) |
| 设置socket是否重用地址,默认false不重用 更多... | |
| bool | getBroadcast () const |
| 获取是否启用广播 更多... | |
| bool | setBroadcast (bool optval) |
| 设置socket是否广播,默认false非广播 更多... | |
| bool | getIpv6Only () const |
| 获取IPV6套接字是否只启用IPV6功能,Windows默认true,Linux默认false 更多... | |
| bool | setIpv6Only (bool optval) |
| 设置IPV6套接字是否只启用IPV6功能,Windows默认true,Linux默认false 更多... | |
| int | getError () const |
| 通过getsockopt()+SO_ERROR获取仅属于socket的错误 更多... | |
| SockType | getType () const |
| 获取socket类型 更多... | |
| bool | isListening () const |
| socket是否为监听模式 更多... | |
| int | getAvailable () const |
| 获取可不阻塞接收的数据量 更多... | |
| bool | setBlocking (bool blocking) |
| 设置socket阻塞模式,true为阻塞,false为非阻塞。 更多... | |
| int | get () const |
| Windows:socket句柄,或Linux:socket描述符 更多... | |
| operator bool () const | |
| 判断Socket是否有效 更多... | |
Public 成员函数 继承自 winux::EnableSharedFromThis< AsyncSocket > | |
| SharedPointer< AsyncSocket > | sharedFromThis () |
| SharedPointer< const AsyncSocket > | sharedFromThis () const |
| WeakPointer< AsyncSocket > | weakFromThis () noexcept |
| WeakPointer< const AsyncSocket > | weakFromThis () const noexcept |
静态 Public 属性 继承自 eiennet::Socket | |
| static int const | MsgDefault |
| static int const | MsgOob |
| static int const | MsgPeek |
| static int const | MsgDontRoute |
| static int const | MsgWaitAll |
| static int const | MsgPartial |
| static int const | MsgInterrupt |
| static int const | MsgMaxIovLen |
| static int const | SdReceive |
| static int const | SdSend |
| static int const | SdBoth |
Protected 类型 继承自 eiennet::Socket | |
| enum | AttrCategory { attrNone, attrBlocking, attrBroadcast, attrReUseAddr, attrSendTimeout, attrRecvTimeout, attrSendBufSize, attrRecvBufSize, attrIpv6Only } |
Protected 属性 继承自 eiennet::AsyncSocket | |
| ErrorHandlerFunction | _ErrorHandler |
Protected 属性 继承自 eiennet::Socket | |
| AddrFamily | _addrFamily |
| SockType | _sockType |
| Protocol | _protocol |
| winux::uint32 | _attrSendTimeout |
| winux::uint32 | _attrRecvTimeout |
| int | _attrSendBufSize |
| int | _attrRecvBufSize |
| bool | _attrBlocking |
| bool | _attrBroadcast |
| bool | _attrReUseAddr |
| bool | _attrIpv6Only |
| std::vector< AttrCategory > | _attrExecSets |
| int | _sock |
| bool | _isNewSock |
TCP/IP异步套接字
在文件 eiennet_async.hpp 第 287 行定义.
在文件 eiennet_async.hpp 第 290 行定义.
|
inlineprotected |
在文件 eiennet_async.hpp 第 293 行定义.
|
inlineexplicitprotected |
在文件 eiennet_async.hpp 第 295 行定义.
|
inlinestatic |
在文件 eiennet_async.hpp 第 298 行定义.
|
inlinestatic |
在文件 eiennet_async.hpp 第 303 行定义.