UDP操作的类 传入套接字进行UDP协议的操作
更多...
#include <sttnet.h>
|
| void | setFD (const int &fd, const bool &flag1=false, const int &sec=-1, const bool &flag2=false) |
| | 设置fd 更多...
|
| |
| void | blockSet (const int &sec=-1) |
| | 设置为阻塞模式 更多...
|
| |
| void | unblockSet () |
| | 设置为非阻塞模式 更多...
|
| |
| bool | multiUseSet () |
| | 设置SO_REUSEADDR模式 更多...
|
| |
| int | getFD () |
| | 返回fd 更多...
|
| |
| void | close (const bool &cle=true) |
| | 置空对象,关闭套接字 更多...
|
| |
| int | sendData (const std::string &data, const std::string &ip, const int &port, const bool &block=true) |
| | 向目标发送字符串数据。 更多...
|
| |
| int | sendData (const char *data, const uint64_t &length, const std::string &ip, const int &port, const bool &block=true) |
| | 向目标发送指定长度的二进制数据。 更多...
|
| |
| int | recvData (std::string &data, const uint64_t &length, std::string &ip, int &port) |
| | 接收一次数据到string字符串容器 更多...
|
| |
| int | recvData (char *data, const uint64_t &length, std::string &ip, int &port) |
| | 接收一次数据到char*容器 更多...
|
| |
| void stt::network::UdpFDHandler::blockSet |
( |
const int & |
sec = -1 | ) |
|
设置为阻塞模式
- 参数
-
| sec | 阻塞超时时间 阻塞超过这个时间就不会再阻塞了 默认为-1 即无限等待 |
| void stt::network::UdpFDHandler::close |
( |
const bool & |
cle = true | ) |
|
置空对象,关闭套接字
- 参数
-
| cle | true:置空对象并且关闭套接字 false:仅仅清空对象,不关闭套接字 |
| int stt::network::UdpFDHandler::getFD |
( |
| ) |
|
|
inline |
| bool stt::network::UdpFDHandler::multiUseSet |
( |
| ) |
|
设置SO_REUSEADDR模式
- 返回
- true:设置成功 false:设置失败
| int stt::network::UdpFDHandler::recvData |
( |
std::string & |
data, |
|
|
const uint64_t & |
length, |
|
|
std::string & |
ip, |
|
|
int & |
port |
|
) |
| |
接收一次数据到string字符串容器
- 参数
-
| data | 接收数据的数据容器(string类型) |
| length | 最大接收长度 |
| ip | 记录发送来源的ip |
| port | 记录发送来源的断开 |
- 返回
- 返回值 > 0:成功接收的字节数;
- 返回值 = 0:连接已关闭;
- 返回值 < 0:接收失败;
- -99:对象未绑定 socket;
- -100:非阻塞模式且没有数据
- 注解
- 接收是否会阻塞根据fd的阻塞情况决定
| int stt::network::UdpFDHandler::recvData |
( |
char * |
data, |
|
|
const uint64_t & |
length, |
|
|
std::string & |
ip, |
|
|
int & |
port |
|
) |
| |
接收一次数据到char*容器
- 参数
-
| data | 接收数据的数据容器(char*类型) |
| length | 最大接收长度 |
| ip | 记录发送来源的ip |
| port | 记录发送来源的断开 |
- 返回
- 返回值 > 0:成功接收的字节数;
- 返回值 = 0:连接已关闭;
- 返回值 < 0:接收失败;
- -99:对象未绑定 socket;
- -100:非阻塞模式且没有数据
- 注解
- 接收是否会阻塞根据fd的阻塞情况决定
| int stt::network::UdpFDHandler::sendData |
( |
const std::string & |
data, |
|
|
const std::string & |
ip, |
|
|
const int & |
port, |
|
|
const bool & |
block = true |
|
) |
| |
向目标发送字符串数据。
- 参数
-
| data | 要发送的数据内容(std::string 类型)。 |
| block | 是否以阻塞模式发送(默认 true)。
- true:会阻塞直到全部数据发送成功除非出错了(无论 socket 是阻塞或非阻塞);
- false:阻塞与否取决于套接字状态。
|
- 返回
- 返回值 > 0:成功发送的字节数;
- 返回值 <= 0:发送失败;
- -98:目标错误
- -99:对象未绑定 socket;
- -100:非阻塞模式下,发送缓冲区已满。
- 注解
- 若 block 为 true,会持续阻塞直到全部数据发送完毕除非出错了(无论 socket 是阻塞或非阻塞),适合希望确保完整发送的场景。 若 block 为 false,阻塞与否取决于套接字状态。返回值可能小于 length,需手动处理剩余数据。
| int stt::network::UdpFDHandler::sendData |
( |
const char * |
data, |
|
|
const uint64_t & |
length, |
|
|
const std::string & |
ip, |
|
|
const int & |
port, |
|
|
const bool & |
block = true |
|
) |
| |
向目标发送指定长度的二进制数据。
- 参数
-
| data | 指向要发送的数据缓冲区。 |
| length | 数据长度(字节)。 |
| block | 是否以阻塞模式发送(默认 true)。
- true:会阻塞直到全部数据发送成功除非出错了(无论 socket 是阻塞或非阻塞);
- false:阻塞与否取决于套接字状态。
|
- 返回
- 返回值 > 0:成功发送的字节数;
- 返回值 <= 0:发送失败;
- -98:目标错误
- -99:对象未绑定 socket;
- -100:非阻塞模式下,发送缓冲区已满。
- 注解
- 若 block 为 true,会持续阻塞直到全部数据发送完毕除非出错了(无论 socket 是阻塞或非阻塞)。 若 block 为 false,阻塞与否取决于套接字状态。返回值可能小于 length,需手动处理剩余数据。
| void stt::network::UdpFDHandler::setFD |
( |
const int & |
fd, |
|
|
const bool & |
flag1 = false, |
|
|
const int & |
sec = -1, |
|
|
const bool & |
flag2 = false |
|
) |
| |
设置fd
- 参数
-
| fd | 需要传入的套接字fd |
| flag1 | true:设置非阻塞模式 false:设置阻塞模式 (默认为阻塞模式) |
| sec | 设置阻塞超时时间(秒) (默认为-1 即为无限等待) |
| flag2 | true:设置SO_REUSEADDR模式 false:不设置SO_REUSEADDR模式 |
| void stt::network::UdpFDHandler::unblockSet |
( |
| ) |
|
| int stt::network::UdpFDHandler::fd =-1 |
|
protected |
| bool stt::network::UdpFDHandler::flag1 =false |
|
protected |
| bool stt::network::UdpFDHandler::flag2 =false |
|
protected |
| int stt::network::UdpFDHandler::sec =-1 |
|
protected |
该类的文档由以下文件生成: