STTNet
 全部  命名空间 文件 函数 变量 类型定义 枚举 枚举值 宏定义 
Public 成员函数 | 所有成员列表
stt::network::TcpClient类 参考

tcp协议客户端操作类 更多...

#include <sttnet.h>

类 stt::network::TcpClient 继承关系图:
stt::network::TcpFDHandler stt::network::HttpClient stt::network::WebSocketClient

Public 成员函数

 TcpClient (const bool &TLS=false, const char *ca="", const char *cert="", const char *key="", const char *passwd="")
 TcpClient类的构造函数 更多...
 
bool connect (const std::string &ip, const int &port)
 向服务端发起tcp连接 更多...
 
void resetCTX (const bool &TLS=false, const char *ca="", const char *cert="", const char *key="", const char *passwd="")
 重新或第一次设置TLS加密参数 更多...
 
bool close ()
 如果对象有套接字连接,关闭和释放这个连接和套接字,并且重新新建一个套接字。 更多...
 
 ~TcpClient ()
 TcpClient的析构函数,会关闭释放套接字和其连接 更多...
 
std::string getServerIP ()
 返回已连接的服务端的ip return 已连接的服务端的ip 更多...
 
int getServerPort ()
 返回已连接的客户端的端口 return 已连接的服务端的端口 更多...
 
bool isConnect ()
 返回对象的连接状态 更多...
 
- Public 成员函数 继承自 stt::network::TcpFDHandler
void setFD (const int &fd, SSL *ssl, const bool &flag1=false, const bool &flag2=false, const int &sec=-1)
 传入套接字初始化对象 更多...
 
int getFD ()
 获取该对象的套接字 更多...
 
SSL * getSSL ()
 获取该对象的加密SSL句柄 更多...
 
void close (const bool &cle=true)
 关闭对象 更多...
 
void blockSet (const int &sec=-1)
 设置对象中的套接字为阻塞模式 更多...
 
void unblockSet ()
 设置对象中的套接字为非阻塞模式 更多...
 
bool multiUseSet ()
 设置对象中的套接字为SO_REUSEADDR模式 更多...
 
bool isConnect ()
 判断对象是否有套接字绑定 更多...
 
int sendData (const std::string &data, const bool &block=true)
 向已连接的套接字发送字符串数据。 更多...
 
int sendData (const char *data, const uint64_t &length, const bool &block=true)
 向已连接的套接字发送指定长度的二进制数据。 更多...
 
int recvDataByLength (std::string &data, const uint64_t &length, const int &sec=2)
 从已连接的套接字中阻塞接收指定长度的数据到字符串 更多...
 
int recvDataByLength (char *data, const uint64_t &length, const int &sec=2)
 从已连接的套接字中阻塞接收指定长度的数据到char*容器 更多...
 
int recvData (std::string &data, const uint64_t &length)
 从已连接的套接字中接收一次数据到string字符串容器 更多...
 
int recvData (char *data, const uint64_t &length)
 从已连接的套接字中接收一次数据到char*容器 更多...
 

额外继承的成员函数

- Public 属性 继承自 stt::network::TcpFDHandler
bool flag3 =false
 如果sendData的block=true,如果发送过程中连接断开,这个标志位会置为true 更多...
 
- Protected 属性 继承自 stt::network::TcpFDHandler
int fd =-1
 
bool flag1 =false
 
bool flag2 =false
 
SSL * ssl =nullptr
 
int sec =-1
 

详细描述

tcp协议客户端操作类

注解
默认是阻塞模式的

构造及析构函数说明

stt::network::TcpClient::TcpClient ( const bool &  TLS = false,
const char *  ca = "",
const char *  cert = "",
const char *  key = "",
const char *  passwd = "" 
)

TcpClient类的构造函数

参数
TLStrue:启用TLS加密 false:不启用TLS加密 (默认为false不启用)
caCA 根证书路径(若启用TLS加密则必须填这个 默认空)
cert客户端证书路径(可选 默认空)
key客户端私钥路径(可选 默认空)
passwd私钥解密密码(可选 默认空)
注解
-ca用来校验对方服务器的证书是否可信(可以用操作系统自带的根证书验证) -如果启用了TLS加密 ca必填 其他可选 -如果服务端要求客户端身份认证(双向 TLS/SSL),你需要提供一个有效的客户端证书。
stt::network::TcpClient::~TcpClient ( )
inline

TcpClient的析构函数,会关闭释放套接字和其连接

成员函数说明

bool stt::network::TcpClient::close ( )

如果对象有套接字连接,关闭和释放这个连接和套接字,并且重新新建一个套接字。

返回
true:关闭成功,新建套接字成功 false:关闭成功,新建套接字失败
bool stt::network::TcpClient::connect ( const std::string &  ip,
const int &  port 
)

向服务端发起tcp连接

参数
ip服务端ip
port服务端端口 return true:连接成功 false:连接失败
std::string stt::network::TcpClient::getServerIP ( )
inline

返回已连接的服务端的ip return 已连接的服务端的ip

int stt::network::TcpClient::getServerPort ( )
inline

返回已连接的客户端的端口 return 已连接的服务端的端口

bool stt::network::TcpClient::isConnect ( )
inline

返回对象的连接状态

返回
true:已连接 false:未连接
void stt::network::TcpClient::resetCTX ( const bool &  TLS = false,
const char *  ca = "",
const char *  cert = "",
const char *  key = "",
const char *  passwd = "" 
)

重新或第一次设置TLS加密参数

注解
设置了的TLS参数伴随整个生命周期,除非调用这个函数重新设置
参数
TLStrue:启用TLS加密 false:不启用TLS加密 (默认为false不启用)
caCA 根证书路径(若启用TLS加密则必须填这个 默认空)
cert客户端证书路径(可选 默认空)
key客户端私钥路径(可选 默认空)
passwd私钥解密密码(可选 默认空)
注解
-ca用来校验对方服务器的证书是否可信(可以用操作系统自带的根证书验证) -如果启用了TLS加密 ca必填 其他可选 -如果服务端要求客户端身份认证(双向 TLS/SSL),你需要提供一个有效的客户端证书。

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