fastdo  0.5.12
eiennet::Socket类 参考

套接字基类 更多...

#include <eiennet_socket.hpp>

类 eiennet::Socket 继承关系图:
eiennet::Socket 的协作图:

Public 类型

enum  AddrFamily {
  afUnspec = 0, afLocal = 1, afUnix = afLocal, afFile = afLocal,
  afInet = 2, afAx25 = 3, afIpx = 4, afAppletalk = 5,
  afNetrom = 6, afBridge = 7, afAtmpvc = 8, afX25 = 9,
  afInet6 = 10, afRose = 11, afDecnet = 12, afNetbeui = 13,
  afSecurity = 14, afKey = 15, afNetlink = 16, afRoute = afNetlink,
  afPacket = 17, afAsh = 18, afEconet = 19, afAtmsvc = 20,
  afRds = 21, afSna = 22, afIrda = 23, afPppox = 24,
  afWanpipe = 25, afLlc = 26, afUnknown27 = 27, afUnknown28 = 28,
  afCan = 29, afTipc = 30, afBluetooth = 31, afIucv = 32,
  afRxrpc = 33, afIsdn = 34, afPhonet = 35, afIeee802154 = 36,
  afMax = 37
}
 
enum  SockType {
  sockUnknown, sockStream, sockDatagram, sockRaw,
  sockRdm, sockSeqPacket, sockDccp, sockPacket,
  sockCloexec, sockNonblock
}
 
enum  Protocol {
  protoIp = 0, protoIcmp, protoIgmp, protoIpip,
  protoIpv4 = protoIpip, protoTcp, protoEgp, protoPup,
  protoUdp, protoIdp, protoTp, protoDccp,
  protoIpv6, protoRsvp, protoGre, protoEsp,
  protoAh, protoMtp, protoBeetph, protoEncap,
  protoPim, protoComp, protoSctp, protoUdplite,
  protoRaw, protoMax
}
 
typedef std::function< void(int hadBytes, void *param) > FunctionSuccessCallback
 

Public 成员函数

 Socket (int sock=-1, bool isNewSock=false)
 构造函数1,包装现有socket描述符 更多...
 
 Socket (AddrFamily af, SockType sockType, Protocol proto)
 构造函数2,根据'地址簇','类型','协议'新建一个socket. 更多...
 
 Socket (Socket &&other)
 移动构造函数 更多...
 
Socketoperator= (Socket &&other)
 移动赋值操作 更多...
 
virtual ~Socket ()
 
bool create (AddrFamily af, SockType sockType, Protocol proto)
 根据'地址簇','类型','协议'创建一个socket 更多...
 
int close ()
 关闭socket描述符 更多...
 
int shutdown (int how=SdReceive)
 关掉socket的相应操作,但并不会close套接字。 更多...
 
int send (void const *data, int size, int msgFlags=MsgDefault)
 发送数据 更多...
 
int send (winux::AnsiString const &data, int msgFlags=MsgDefault)
 发送数据 更多...
 
int send (winux::Buffer const &data, int msgFlags=MsgDefault)
 发送数据 更多...
 
bool sendUntil (int 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 (int targetSize, void const *data, int *hadSent, double sec, int *rcWait, FunctionSuccessCallback eachSuccessCallback=FunctionSuccessCallback(), void *param=nullptr, int msgFlags=MsgDefault)
 发送数据,直到发送完指定大小的数据或超时。*hadSent表示已发送的数据请初始化为0;;sec表示超时值,sec<0则一直等待。 更多...
 
int sendWaitUntil (winux::AnsiString const &data, int *hadSent, double sec, int *rcWait, FunctionSuccessCallback eachSuccessCallback=FunctionSuccessCallback(), void *param=nullptr, int msgFlags=MsgDefault)
 
int sendWaitUntil (winux::Buffer const &data, int *hadSent, double sec, int *rcWait, FunctionSuccessCallback eachSuccessCallback=FunctionSuccessCallback(), void *param=nullptr, int msgFlags=MsgDefault)
 
template<typename _PodType >
bool sendUntilType (_PodType const &v, int msgFlags=MsgDefault)
 发送一个Plain of Data类型的变量,若成功返回true,否则返回false。 更多...
 
int recv (void *buf, int size, int msgFlags=MsgDefault)
 尝试接收size大小数据,返回实际接收的数据大小或错误。 更多...
 
winux::Buffer recv (int 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, int *hadRead, int *startpos, int *pos, double sec, int *rcWait, FunctionSuccessCallback eachSuccessCallback=FunctionSuccessCallback(), void *param=nullptr, int msgFlags=MsgDefault)
 接收数据,直到碰到target指定的数据或者超时。*startpos表示搜索起始位置并返回下一次搜索位置;*pos返回搜到指定数据的位置,data返回接收到的数据,data里可以已有部分数据;extraData返回额外接收的数据;sec表示超时值,sec<0则一直等待。 更多...
 
bool recvUntilSize (int targetSize, winux::GrowBuffer *data, int msgFlags=MsgDefault)
 接收数据,直到收到指定大小的数据。data返回接收到的数据。 更多...
 
int recvWaitUntilSize (int targetSize, winux::GrowBuffer *data, int *hadRead, double sec, int *rcWait, FunctionSuccessCallback eachSuccessCallback=FunctionSuccessCallback(), void *param=nullptr, int msgFlags=MsgDefault)
 接收数据,直到收到指定大小的数据或者超时。*hadRead表示已读的数据请初始设为0;data返回接收到的数据;sec表示超时值,sec<0则一直等待。 更多...
 
template<typename _PodType >
bool recvUntilType (_PodType *v, 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, int size, int msgFlags=MsgDefault)
 发送数据到 更多...
 
int recvFrom (EndPoint *ep, void *buf, int size, int msgFlags=MsgDefault)
 接收数据从 更多...
 
bool connect (EndPoint const &ep)
 连接服务器 更多...
 
bool bind (EndPoint const &ep)
 socket绑定地址 更多...
 
bool listen (int backlog)
 监听 更多...
 
bool accept (int *sock, EndPoint *ep=NULL)
 接受一个客户连接 更多...
 
winux::SharedPointer< Socketaccept (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非广播 更多...
 
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 成员函数

static int ErrNo ()
 从errno获取错误码 更多...
 

静态 Public 属性

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 属性

winux::MembersWrapper< struct Socket_Data > _self
 

详细描述

套接字基类

在文件 eiennet_socket.hpp42 行定义.

成员类型定义说明

typedef std::function< void ( int hadBytes, void * param ) > eiennet::Socket::FunctionSuccessCallback

在文件 eiennet_socket.hpp178 行定义.

成员枚举类型说明

枚举值
afUnspec 
afLocal 
afUnix 
afFile 
afInet 
afAx25 
afIpx 
afAppletalk 
afNetrom 
afBridge 
afAtmpvc 
afX25 
afInet6 
afRose 
afDecnet 
afNetbeui 
afSecurity 
afKey 
afNetlink 
afRoute 
afPacket 
afAsh 
afEconet 
afAtmsvc 
afRds 
afSna 
afIrda 
afPppox 
afWanpipe 
afLlc 
afUnknown27 
afUnknown28 
afCan 
afTipc 
afBluetooth 
afIucv 
afRxrpc 
afIsdn 
afPhonet 
afIeee802154 
afMax 

在文件 eiennet_socket.hpp47 行定义.

枚举值
protoIp 
protoIcmp 
protoIgmp 
protoIpip 
protoIpv4 
protoTcp 
protoEgp 
protoPup 
protoUdp 
protoIdp 
protoTp 
protoDccp 
protoIpv6 
protoRsvp 
protoGre 
protoEsp 
protoAh 
protoMtp 
protoBeetph 
protoEncap 
protoPim 
protoComp 
protoSctp 
protoUdplite 
protoRaw 
protoMax 

在文件 eiennet_socket.hpp108 行定义.

枚举值
sockUnknown 
sockStream 
sockDatagram 
sockRaw 
sockRdm 
sockSeqPacket 
sockDccp 
sockPacket 
sockCloexec 
sockNonblock 

在文件 eiennet_socket.hpp91 行定义.

构造及析构函数说明

eiennet::Socket::Socket ( int  sock = -1,
bool  isNewSock = false 
)
explicit

构造函数1,包装现有socket描述符

参数
socksocket描述符(Windows平台是socket句柄)
isNewSock指示是否为新建socket. 如果为true,则会在Socket destroy时,自动close(sock).
eiennet::Socket::Socket ( AddrFamily  af,
SockType  sockType,
Protocol  proto 
)

构造函数2,根据'地址簇','类型','协议'新建一个socket.

eiennet::Socket::Socket ( Socket &&  other)

移动构造函数

virtual eiennet::Socket::~Socket ( )
virtual

成员函数说明

bool eiennet::Socket::accept ( int *  sock,
EndPoint ep = NULL 
)

接受一个客户连接

成功则*sock输出Socket句柄,调用者负责close()

winux::SharedPointer<Socket> eiennet::Socket::accept ( EndPoint ep = NULL)
inline

接受一个客户连接

在文件 eiennet_socket.hpp332 行定义.

bool eiennet::Socket::bind ( EndPoint const &  ep)

socket绑定地址

int eiennet::Socket::close ( )

关闭socket描述符

bool eiennet::Socket::connect ( EndPoint const &  ep)

连接服务器

bool eiennet::Socket::create ( AddrFamily  af,
SockType  sockType,
Protocol  proto 
)

根据'地址簇','类型','协议'创建一个socket

static int eiennet::Socket::ErrNo ( )
static

从errno获取错误码

int eiennet::Socket::get ( ) const

Windows:socket句柄,或Linux:socket描述符

int eiennet::Socket::getAvailable ( ) const

获取可不阻塞接收的数据量

bool eiennet::Socket::getBroadcast ( ) const

获取是否启用广播

int eiennet::Socket::getError ( ) const

通过getsockopt()+SO_ERROR获取仅属于socket的错误

int eiennet::Socket::getRecvBufSize ( ) const

获取接收缓冲区大小

winux::uint32 eiennet::Socket::getRecvTimeout ( ) const

获取接收超时(ms)

bool eiennet::Socket::getReUseAddr ( ) const

获取是否开启了重用地址

int eiennet::Socket::getSendBufSize ( ) const

获取发送缓冲区大小

winux::uint32 eiennet::Socket::getSendTimeout ( ) const

获取发送超时(ms)

SockType eiennet::Socket::getType ( ) const

获取socket类型

bool eiennet::Socket::isListening ( ) const

socket是否为监听模式

默认从getsockopt(SO_ACCEPTCONN)读取

bool eiennet::Socket::listen ( int  backlog)

监听

eiennet::Socket::operator bool ( ) const
inline

判断Socket是否有效

在文件 eiennet_socket.hpp397 行定义.

Socket& eiennet::Socket::operator= ( Socket &&  other)

移动赋值操作

int eiennet::Socket::recv ( void *  buf,
int  size,
int  msgFlags = MsgDefault 
)

尝试接收size大小数据,返回实际接收的数据大小或错误。

winux::Buffer eiennet::Socket::recv ( int  size,
int  msgFlags = MsgDefault 
)

尝试接收size大小数据,返回实际收到的数据Buffer。

返回的Buffer有三种状态:
1、接收到数据,此时(bool)Buffer==true 且 Buffer.getSize() > 0;
2、接收到了0字节数据,此时(bool)Buffer==true 且 Buffer.getSize()==0;
3、recv()发生错误,此时(bool)Buffer==false

winux::Buffer eiennet::Socket::recvAvail ( int  msgFlags = MsgDefault)

接收不用阻塞即可接收的数据,返回收到的数据Buffer。

返回的Buffer有三种状态:
1、接收到数据,此时(bool)Buffer==true 且 Buffer.getSize() > 0;
2、接收到了0字节数据,此时(bool)Buffer==true 且 Buffer.getSize()==0;
3、recv()发生错误,此时(bool)Buffer==false

int eiennet::Socket::recvFrom ( EndPoint ep,
void *  buf,
int  size,
int  msgFlags = MsgDefault 
)

接收数据从

bool eiennet::Socket::recvUntilSize ( int  targetSize,
winux::GrowBuffer data,
int  msgFlags = MsgDefault 
)

接收数据,直到收到指定大小的数据。data返回接收到的数据。

如果收到指定大小的数据成功返回true,否则返回false(可能是连接关闭或出错了)。

bool eiennet::Socket::recvUntilTarget ( winux::AnsiString const &  target,
winux::GrowBuffer data,
winux::GrowBuffer extraData,
int  msgFlags = MsgDefault 
)

接收数据,直到碰到target指定的数据。data返回接收到的数据,data里可以已有部分数据,extraData返回额外接收的数据。

如果碰到target指定的数据成功返回true,否则返回false(可能是连接关闭或出错了)。

template<typename _PodType >
bool eiennet::Socket::recvUntilType ( _PodType *  v,
int  msgFlags = MsgDefault 
)
inline

接收一个Plain of Data类型的变量,若成功返回true,否则返回false。

在文件 eiennet_socket.hpp287 行定义.

函数调用图:

winux::Buffer eiennet::Socket::recvWaitAvail ( double  sec,
int *  rcWait,
int  msgFlags = MsgDefault 
)

接收已到达的数据,如果没有到达数据则等待有数据到达或超过指定时间,返回收到的数据Buffer。

*rcWait接收selec()的返回代码:*rcWait>0:表示有数据到达;*rcWait==0:表示超时;*rcWait<0:表示select()出错。
只有当*rcWait>0时才会接收数据,数据可能是0大小,表示连接关闭信号。
返回的Buffer有三种状态:
1、接收到数据,此时(bool)Buffer==true 且 Buffer.getSize() > 0;
2、接收到了0字节数据,此时(bool)Buffer==true 且 Buffer.getSize()==0,也可能是等待超时,需用*rcWait的值判断;
3、recv()发生错误,此时(bool)Buffer==false

int eiennet::Socket::recvWaitUntilSize ( int  targetSize,
winux::GrowBuffer data,
int *  hadRead,
double  sec,
int *  rcWait,
FunctionSuccessCallback  eachSuccessCallback = FunctionSuccessCallback(),
void *  param = nullptr,
int  msgFlags = MsgDefault 
)

接收数据,直到收到指定大小的数据或者超时。*hadRead表示已读的数据请初始设为0;data返回接收到的数据;sec表示超时值,sec<0则一直等待。

*rcWait接收selec()的返回代码:*rcWait>0:表示有数据到达;*rcWait==0:表示超时;*rcWait<0:表示select()出错。
只有当*rcWait>0时才会接收数据,数据可能是0大小,表示连接关闭信号。
返回一次recv的数据大小;如果返回0,需检测*rcWait值(若*rcWait>0则表示连接关闭);如果出错返回-1。
判断是否接收完全,需检测*hadRead==targetSize。 eachSuccessCallback每次成功会调用的回调函数。

int eiennet::Socket::recvWaitUntilTarget ( winux::AnsiString const &  target,
winux::GrowBuffer data,
winux::GrowBuffer extraData,
int *  hadRead,
int *  startpos,
int *  pos,
double  sec,
int *  rcWait,
FunctionSuccessCallback  eachSuccessCallback = FunctionSuccessCallback(),
void *  param = nullptr,
int  msgFlags = MsgDefault 
)

接收数据,直到碰到target指定的数据或者超时。*startpos表示搜索起始位置并返回下一次搜索位置;*pos返回搜到指定数据的位置,data返回接收到的数据,data里可以已有部分数据;extraData返回额外接收的数据;sec表示超时值,sec<0则一直等待。

请将*startpos赋初值0,*pos赋初值-1。
*rcWait接收selec()的返回代码:*rcWait>0:表示有数据到达;*rcWait==0:表示超时;*rcWait<0:表示select()出错。
只有当*rcWait>0时才会接收数据,数据可能是0大小,表示连接关闭信号。
返回一次recv的数据大小;如果返回0,需检测*rcWait值(若*rcWait>0则表示连接关闭);如果出错返回-1。
判断是否接收完全,需检测*pos!=-1。 eachSuccessCallback每次成功会调用的回调函数。

int eiennet::Socket::send ( void const *  data,
int  size,
int  msgFlags = MsgDefault 
)

发送数据

int eiennet::Socket::send ( winux::AnsiString const &  data,
int  msgFlags = MsgDefault 
)
inline

发送数据

在文件 eiennet_socket.hpp217 行定义.

函数调用图:

int eiennet::Socket::send ( winux::Buffer const &  data,
int  msgFlags = MsgDefault 
)
inline

发送数据

在文件 eiennet_socket.hpp219 行定义.

函数调用图:

int eiennet::Socket::sendTo ( EndPoint const &  ep,
void const *  data,
int  size,
int  msgFlags = MsgDefault 
)

发送数据到

bool eiennet::Socket::sendUntil ( int  targetSize,
void const *  data,
int  msgFlags = MsgDefault 
)

发送数据,直到发送完指定大小的数据。

如果发送指定大小的数据成功返回true,否则返回false(可能是连接关闭或出错了)。

bool eiennet::Socket::sendUntil ( winux::AnsiString const &  data,
int  msgFlags = MsgDefault 
)
inline

在文件 eiennet_socket.hpp225 行定义.

函数调用图:

bool eiennet::Socket::sendUntil ( winux::Buffer const &  data,
int  msgFlags = MsgDefault 
)
inline

在文件 eiennet_socket.hpp226 行定义.

函数调用图:

template<typename _PodType >
bool eiennet::Socket::sendUntilType ( _PodType const &  v,
int  msgFlags = MsgDefault 
)
inline

发送一个Plain of Data类型的变量,若成功返回true,否则返回false。

在文件 eiennet_socket.hpp243 行定义.

int eiennet::Socket::sendWaitUntil ( int  targetSize,
void const *  data,
int *  hadSent,
double  sec,
int *  rcWait,
FunctionSuccessCallback  eachSuccessCallback = FunctionSuccessCallback(),
void *  param = nullptr,
int  msgFlags = MsgDefault 
)

发送数据,直到发送完指定大小的数据或超时。*hadSent表示已发送的数据请初始化为0;;sec表示超时值,sec<0则一直等待。

*rcWait接收selec()的返回代码:*rcWait>0:表示可发送数据;*rcWait==0:表示超时;*rcWait<0:表示select()出错。
只有当*rcWait>0时才会发送数据。
返回一次send的数据大小;如果出错返回-1,具体错误查看错误代码getError()/ErrNo()。
判断是否发送完全,需检测*hadSent==targetSize,(注:send()的默认行为是拷贝到socket发送缓冲区,可将发送缓冲区设置为0大小,send()立即发送数据)。 eachSuccessCallback每次成功会调用的回调函数。

int eiennet::Socket::sendWaitUntil ( winux::AnsiString const &  data,
int *  hadSent,
double  sec,
int *  rcWait,
FunctionSuccessCallback  eachSuccessCallback = FunctionSuccessCallback(),
void *  param = nullptr,
int  msgFlags = MsgDefault 
)
inline

在文件 eiennet_socket.hpp236 行定义.

int eiennet::Socket::sendWaitUntil ( winux::Buffer const &  data,
int *  hadSent,
double  sec,
int *  rcWait,
FunctionSuccessCallback  eachSuccessCallback = FunctionSuccessCallback(),
void *  param = nullptr,
int  msgFlags = MsgDefault 
)
inline

在文件 eiennet_socket.hpp238 行定义.

函数调用图:

bool eiennet::Socket::setBlocking ( bool  blocking)

设置socket阻塞模式,true为阻塞,false为非阻塞。

bool eiennet::Socket::setBroadcast ( bool  optval)

设置socket是否广播,默认false非广播

bool eiennet::Socket::setRecvBufSize ( int  optval)

设置接收缓冲区大小

bool eiennet::Socket::setRecvTimeout ( winux::uint32  optval)

设置接收超时(ms)

bool eiennet::Socket::setReUseAddr ( bool  optval)

设置socket是否重用地址,默认false不重用

bool eiennet::Socket::setSendBufSize ( int  optval)

设置发送缓冲区大小

bool eiennet::Socket::setSendTimeout ( winux::uint32  optval)

设置发送超时(ms)

在Windows上,发送似乎由系统后台进行,send()总是立即返回全部发送的数据大小,设置超时似乎无用。

int eiennet::Socket::shutdown ( int  how = SdReceive)

关掉socket的相应操作,但并不会close套接字。

SdReceive:关掉接收操作, SdSend:关掉发送操作, SdBoth:都关掉

类成员变量说明

winux::MembersWrapper<struct Socket_Data> eiennet::Socket::_self
protected

在文件 eiennet_socket.hpp405 行定义.

int const eiennet::Socket::MsgDefault
static

在文件 eiennet_socket.hpp139 行定义.

int const eiennet::Socket::MsgDontRoute
static

在文件 eiennet_socket.hpp143 行定义.

int const eiennet::Socket::MsgInterrupt
static

在文件 eiennet_socket.hpp146 行定义.

int const eiennet::Socket::MsgMaxIovLen
static

在文件 eiennet_socket.hpp147 行定义.

int const eiennet::Socket::MsgOob
static

在文件 eiennet_socket.hpp141 行定义.

int const eiennet::Socket::MsgPartial
static

在文件 eiennet_socket.hpp145 行定义.

int const eiennet::Socket::MsgPeek
static

在文件 eiennet_socket.hpp142 行定义.

int const eiennet::Socket::MsgWaitAll
static

在文件 eiennet_socket.hpp144 行定义.

int const eiennet::Socket::SdBoth
static

在文件 eiennet_socket.hpp176 行定义.

int const eiennet::Socket::SdReceive
static

在文件 eiennet_socket.hpp174 行定义.

int const eiennet::Socket::SdSend
static

在文件 eiennet_socket.hpp175 行定义.


该类的文档由以下文件生成: