| 
    fastdo
    0.5.12
    
   | 
 
UDP/IP套接字 更多...
#include <eiennet_socket.hpp>


Public 成员函数 | |
| Socket (int sock, bool isNewSock=false) | |
| 构造函数1,包装现有socket描述符  更多... | |
| Socket () | |
| 构造函数2,新建一个udp socket.  更多... | |
| Socket (Socket &&other) | |
| 移动构造函数  更多... | |
| Socket & | operator= (Socket &&other) | 
| 移动赋值操作  更多... | |
| int | sendTo (winux::String const &ipAddr, winux::ushort port, void const *data, int size, int msgFlags=MsgDefault) | 
| int | recvFrom (winux::String *ipAddr, winux::ushort *port, void *buf, int size, int msgFlags=MsgDefault) | 
  Public 成员函数 继承自 eiennet::Socket | |
| Socket (int sock=-1, bool isNewSock=false) | |
| 构造函数1,包装现有socket描述符  更多... | |
| Socket (AddrFamily af, SockType sockType, Protocol proto) | |
| 构造函数2,根据'地址簇','类型','协议'新建一个socket.  更多... | |
| Socket (Socket &&other) | |
| 移动构造函数  更多... | |
| Socket & | operator= (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< 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非广播  更多... | |
| 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 成员函数 继承自 eiennet::Socket | |
| static int | ErrNo () | 
| 从errno获取错误码  更多... | |
  静态 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 | |
| winux::MembersWrapper< struct Socket_Data > | _self | 
UDP/IP套接字
在文件 eiennet_socket.hpp 第 639 行定义.
在文件 eiennet_socket.hpp 第 642 行定义.
      
  | 
  inlineexplicit | 
构造函数1,包装现有socket描述符
| sock | socket描述符(Windows平台是socket句柄) | 
| isNewSock | 指示是否为新建socket. 如果为true,则会在Socket destroy时,自动close(sock). | 
在文件 eiennet_socket.hpp 第 648 行定义.
      
  | 
  inline | 
构造函数2,新建一个udp socket.
在文件 eiennet_socket.hpp 第 651 行定义.
      
  | 
  inline | 
移动构造函数
在文件 eiennet_socket.hpp 第 655 行定义.
移动赋值操作
在文件 eiennet_socket.hpp 第 657 行定义.
| int eiennet::ip::udp::Socket::recvFrom | ( | winux::String * | ipAddr, | 
| winux::ushort * | port, | ||
| void * | buf, | ||
| int | size, | ||
| int | msgFlags = MsgDefault  | 
        ||
| ) | 
      
  | 
  inline | 
在文件 eiennet_socket.hpp 第 664 行定义.