fastdo
0.6.16
|
套接字基础类 更多...
#include <eiennet_socket.hpp>
Public 成员函数 | |
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 成员函数 | |
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 类型 | |
enum | AttrCategory { attrNone, attrBlocking, attrBroadcast, attrReUseAddr, attrSendTimeout, attrRecvTimeout, attrSendBufSize, attrRecvBufSize, attrIpv6Only } |
Protected 成员函数 | |
bool | _tryCreate (AddrFamily af, bool hasAf, SockType sockType, bool hasSockType, Protocol proto, bool hasProto) |
如果未创建Socket则尝试创建。如果创建成功或已创建则返回true,如果创建失败则返回false 更多... | |
void | _membersInit () |
void | _resetManaged () |
Protected 属性 | |
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 |
套接字基础类
若是新对象,套接字会延迟创建。只有当带EndPoint
参数的方法被调用时才会实际创建套接字。相应的方法有:bind()
、connect()
、sendTo()
、recvFrom()
。
在文件 eiennet_socket.hpp 第 32 行定义.
typedef std::function< void ( size_t hadBytes, void * param ) > eiennet::Socket::FunctionSuccessCallback |
在文件 eiennet_socket.hpp 第 171 行定义.
地址族
在文件 eiennet_socket.hpp 第 38 行定义.
套接字类型
在文件 eiennet_socket.hpp 第 83 行定义.
协议
在文件 eiennet_socket.hpp 第 101 行定义.
|
protected |
枚举值 | |
---|---|
attrNone | |
attrBlocking | |
attrBroadcast | |
attrReUseAddr | |
attrSendTimeout | |
attrRecvTimeout | |
attrSendBufSize | |
attrRecvBufSize | |
attrIpv6Only |
在文件 eiennet_socket.hpp 第 519 行定义.
|
explicit |
构造函数1,包装现有socket描述符
sock | socket描述符(Windows平台是socket句柄) |
isNewSock | 指示是否为新建socket。如果为true,则会在Socket摧毁时自动close(sock) |
eiennet::Socket::Socket | ( | AddrFamily | af, |
SockType | sockType, | ||
Protocol | proto | ||
) |
构造函数2,指定socket的'地址簇','类型','协议'
|
virtual |
移动构造函数
移动赋值操作
AddrFamily eiennet::Socket::getAddrFamily | ( | ) | const |
获取Socket的create()参数:'地址簇'
void eiennet::Socket::setAddrFamily | ( | AddrFamily | af | ) |
指定Socket的create()参数:'地址簇'
SockType eiennet::Socket::getSockType | ( | ) | const |
获取Socket的create()参数:'类型'
void eiennet::Socket::setSockType | ( | SockType | sockType | ) |
指定Socket的create()参数:'类型'
Protocol eiennet::Socket::getProtocol | ( | ) | const |
获取Socket的create()参数:'协议'
void eiennet::Socket::setProtocol | ( | Protocol | proto | ) |
指定Socket的create()参数:'协议'
void eiennet::Socket::getParams | ( | AddrFamily * | af, |
SockType * | sockType, | ||
Protocol * | proto | ||
) |
获取Socket的create()参数:'地址簇','类型','协议'
void eiennet::Socket::setParams | ( | AddrFamily | af, |
SockType | sockType, | ||
Protocol | proto | ||
) |
指定Socket的create()参数:'地址簇','类型','协议'
bool eiennet::Socket::create | ( | AddrFamily | af, |
SockType | sockType, | ||
Protocol | proto | ||
) |
根据'地址簇','类型','协议'创建一个socket
bool eiennet::Socket::create | ( | ) |
根据内部存储的'地址簇','类型','协议'创建一个socket
|
protected |
如果未创建Socket则尝试创建。如果创建成功或已创建则返回true,如果创建失败则返回false
可传递指定参数,若不传递则用默认参数
int eiennet::Socket::close | ( | ) |
关闭socket描述符
int eiennet::Socket::shutdown | ( | int | how = SdSend | ) |
关掉socket的相应操作,但并不会close套接字。
Socket::SdReceive
:关掉接收操作,Socket::SdSend
:关掉发送操作,Socket::SdBoth
:都关掉
int eiennet::Socket::send | ( | void const * | data, |
size_t | size, | ||
int | msgFlags = MsgDefault |
||
) |
发送数据。返回已发送大小,出错返回-1。
|
inline |
发送数据。返回已发送大小,出错返回-1。
在文件 eiennet_socket.hpp 第 238 行定义.
|
inline |
发送数据。返回已发送大小,出错返回-1。
在文件 eiennet_socket.hpp 第 240 行定义.
bool eiennet::Socket::sendUntil | ( | size_t | targetSize, |
void const * | data, | ||
int | msgFlags = MsgDefault |
||
) |
发送数据,直到发送完指定大小的数据。
如果发送指定大小的数据成功返回true,否则返回false(可能是连接关闭或出错了)。
|
inline |
|
inline |
int eiennet::Socket::sendWaitUntil | ( | size_t | targetSize, |
void const * | data, | ||
size_t * | 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每次成功会调用的回调函数。
|
inline |
在文件 eiennet_socket.hpp 第 274 行定义.
|
inline |
在文件 eiennet_socket.hpp 第 284 行定义.
|
inline |
发送一个Plain of Data
类型的变量,若成功返回true,否则返回false。
在文件 eiennet_socket.hpp 第 296 行定义.
int eiennet::Socket::recv | ( | void * | buf, |
size_t | size, | ||
int | msgFlags = MsgDefault |
||
) |
尝试接收size大小数据。返回实际接收的数据大小,出错返回-1。
winux::Buffer eiennet::Socket::recv | ( | size_t | 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
bool eiennet::Socket::recvUntilTarget | ( | winux::AnsiString const & | target, |
winux::GrowBuffer * | data, | ||
winux::GrowBuffer * | extraData, | ||
int | msgFlags = MsgDefault |
||
) |
接收数据,直到碰到target指定的数据。data返回接收到的数据,data里可以已有部分数据,extraData返回额外接收的数据。
如果碰到target指定的数据成功返回true,否则返回false(可能是连接关闭或出错了)。
int eiennet::Socket::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指定的数据或者超时。
*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每次成功会调用的回调函数。
bool eiennet::Socket::recvUntilSize | ( | size_t | targetSize, |
winux::GrowBuffer * | data, | ||
int | msgFlags = MsgDefault |
||
) |
接收数据,直到收到指定大小的数据。data返回接收到的数据。
如果data==nullptr,则丢弃数据。 如果收到指定大小的数据成功返回true,否则返回false(可能是连接关闭或出错了)。
int eiennet::Socket::recvWaitUntilSize | ( | size_t | targetSize, |
winux::GrowBuffer * | data, | ||
size_t * | hadRead, | ||
double | sec, | ||
int * | rcWait, | ||
FunctionSuccessCallback | eachSuccessCallback = FunctionSuccessCallback() , |
||
void * | param = nullptr , |
||
int | msgFlags = MsgDefault |
||
) |
接收数据,直到收到指定大小的数据或者超时。
如果data==nullptr,则丢弃数据。 *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每次成功会调用的回调函数。
|
inline |
接收一个Plain of Data
类型的变量,若成功返回true,否则返回false。
在文件 eiennet_socket.hpp 第 365 行定义.
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
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::sendTo | ( | EndPoint const & | ep, |
void const * | data, | ||
size_t | size, | ||
int | msgFlags = MsgDefault |
||
) |
无连接模式发送数据到指定端点。返回已发送大小,出错返回-1。
|
inline |
无连接模式发送数据到指定端点。返回已发送大小,出错返回-1。
在文件 eiennet_socket.hpp 第 393 行定义.
|
inline |
无连接模式发送数据到指定端点。返回已发送大小,出错返回-1。
在文件 eiennet_socket.hpp 第 395 行定义.
int eiennet::Socket::recvFrom | ( | EndPoint * | ep, |
void * | buf, | ||
size_t | size, | ||
int | msgFlags = MsgDefault |
||
) |
无连接模式接收数据。返回已接收的大小,出错返回-1。
必须先调用bind()
绑定地址,收到数据后ep会返回发送方的端点信息。
winux::Buffer eiennet::Socket::recvFrom | ( | EndPoint * | ep, |
size_t | size, | ||
int | msgFlags = MsgDefault |
||
) |
无连接模式接收数据。返回实际收到的数据Buffer。
必须先调用bind()
绑定地址,收到数据后ep会返回发送方的端点信息。
返回的Buffer有三种状态:
1、接收到数据,此时(bool)Buffer==true 且 Buffer.getSize() > 0;
2、接收到了0字节数据,此时(bool)Buffer==true 且 Buffer.getSize()==0;
3、recv()发生错误,此时(bool)Buffer==false
bool eiennet::Socket::connect | ( | EndPoint const & | ep | ) |
连接服务器
bool eiennet::Socket::bind | ( | EndPoint const & | ep | ) |
绑定地址。若套接字尚未创建则创建套接字
bool eiennet::Socket::listen | ( | int | backlog | ) |
监听
bool eiennet::Socket::accept | ( | int * | sock, |
EndPoint * | ep = NULL |
||
) |
接受一个客户连接
成功则*sock输出Socket句柄,调用者负责close()
|
inline |
接受一个客户连接
在文件 eiennet_socket.hpp 第 425 行定义.
int eiennet::Socket::getRecvBufSize | ( | ) | const |
获取接收缓冲区大小
bool eiennet::Socket::setRecvBufSize | ( | int | optval | ) |
设置接收缓冲区大小
int eiennet::Socket::getSendBufSize | ( | ) | const |
获取发送缓冲区大小
bool eiennet::Socket::setSendBufSize | ( | int | optval | ) |
设置发送缓冲区大小
winux::uint32 eiennet::Socket::getRecvTimeout | ( | ) | const |
获取接收超时(ms)
bool eiennet::Socket::setRecvTimeout | ( | winux::uint32 | optval | ) |
设置接收超时(ms)
winux::uint32 eiennet::Socket::getSendTimeout | ( | ) | const |
获取发送超时(ms)
bool eiennet::Socket::setSendTimeout | ( | winux::uint32 | optval | ) |
设置发送超时(ms)
在Windows上,发送似乎由系统后台进行,send()
总是立即返回全部发送的数据大小,设置超时似乎无用。
bool eiennet::Socket::getReUseAddr | ( | ) | const |
获取是否开启了重用地址
bool eiennet::Socket::setReUseAddr | ( | bool | optval | ) |
设置socket是否重用地址,默认false不重用
bool eiennet::Socket::getBroadcast | ( | ) | const |
获取是否启用广播
bool eiennet::Socket::setBroadcast | ( | bool | optval | ) |
设置socket是否广播,默认false非广播
bool eiennet::Socket::getIpv6Only | ( | ) | const |
获取IPV6套接字是否只启用IPV6功能,Windows默认true,Linux默认false
bool eiennet::Socket::setIpv6Only | ( | bool | optval | ) |
设置IPV6套接字是否只启用IPV6功能,Windows默认true,Linux默认false
int eiennet::Socket::getError | ( | ) | const |
通过getsockopt()+SO_ERROR获取仅属于socket的错误
SockType eiennet::Socket::getType | ( | ) | const |
获取socket类型
bool eiennet::Socket::isListening | ( | ) | const |
socket是否为监听模式
默认从getsockopt(SO_ACCEPTCONN)读取
int eiennet::Socket::getAvailable | ( | ) | const |
获取可不阻塞接收的数据量
bool eiennet::Socket::setBlocking | ( | bool | blocking | ) |
设置socket阻塞模式,true为阻塞,false为非阻塞。
int eiennet::Socket::get | ( | ) | const |
Windows:socket句柄,或Linux:socket描述符
|
inline |
判断Socket是否有效
在文件 eiennet_socket.hpp 第 495 行定义.
|
static |
从errno获取错误码
|
inlineprotected |
在文件 eiennet_socket.hpp 第 538 行定义.
|
inlineprotected |
在文件 eiennet_socket.hpp 第 561 行定义.
|
static |
在文件 eiennet_socket.hpp 第 132 行定义.
|
static |
在文件 eiennet_socket.hpp 第 134 行定义.
|
static |
在文件 eiennet_socket.hpp 第 135 行定义.
|
static |
在文件 eiennet_socket.hpp 第 136 行定义.
|
static |
在文件 eiennet_socket.hpp 第 137 行定义.
|
static |
在文件 eiennet_socket.hpp 第 138 行定义.
|
static |
在文件 eiennet_socket.hpp 第 139 行定义.
|
static |
在文件 eiennet_socket.hpp 第 140 行定义.
|
static |
在文件 eiennet_socket.hpp 第 167 行定义.
|
static |
在文件 eiennet_socket.hpp 第 168 行定义.
|
static |
在文件 eiennet_socket.hpp 第 169 行定义.
|
protected |
在文件 eiennet_socket.hpp 第 504 行定义.
|
protected |
在文件 eiennet_socket.hpp 第 505 行定义.
|
protected |
在文件 eiennet_socket.hpp 第 506 行定义.
|
protected |
在文件 eiennet_socket.hpp 第 509 行定义.
|
protected |
在文件 eiennet_socket.hpp 第 510 行定义.
|
protected |
在文件 eiennet_socket.hpp 第 511 行定义.
|
protected |
在文件 eiennet_socket.hpp 第 512 行定义.
|
protected |
在文件 eiennet_socket.hpp 第 513 行定义.
|
protected |
在文件 eiennet_socket.hpp 第 514 行定义.
|
protected |
在文件 eiennet_socket.hpp 第 515 行定义.
|
protected |
在文件 eiennet_socket.hpp 第 516 行定义.
|
protected |
在文件 eiennet_socket.hpp 第 531 行定义.
|
protected |
在文件 eiennet_socket.hpp 第 534 行定义.
|
protected |
在文件 eiennet_socket.hpp 第 535 行定义.