STTNet 0.7.0
Loading...
Searching...
No Matches
stt::network::TcpClient Class Reference

tcp协议客户端操作类 More...

#include <sttnet.h>

Inheritance diagram for stt::network::TcpClient:
stt::network::TcpFDHandler stt::network::HttpClient stt::network::WebSocketClient

Public Member Functions

 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 Member Functions inherited from stt::network::TcpFDHandler
void setFD (const int &fd, SSL *ssl, const bool &flag1=false, const bool &flag2=false, const int &sec=-1)
 传入套接字初始化对象
 
void setTransportFunctions (std::function< int(std::string)> sendFunction, std::function< void()> closeFunction={})
 由服务端 Reactor 注入异步发送和关闭通道。
 
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*容器
 

Additional Inherited Members

- Public Attributes inherited from stt::network::TcpFDHandler
bool flag3 =false
 如果sendData的block=true,如果发送过程中连接断开,这个标志位会置为true
 
- Protected Attributes inherited from stt::network::TcpFDHandler
int fd =-1
 
bool flag1 =false
 
bool flag2 =false
 
SSL * ssl =nullptr
 
int sec =-1
 
std::function< int(std::string)> queuedSendFunction
 
std::function< void()> queuedCloseFunction
 

Detailed Description

tcp协议客户端操作类

Note
默认是阻塞模式的

Constructor & Destructor Documentation

◆ TcpClient()

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

TcpClient类的构造函数

Parameters
TLStrue:启用TLS加密 false:不启用TLS加密 (默认为false不启用)
caCA 根证书文件路径;留空时使用操作系统默认信任库。
cert客户端证书路径(可选 默认空)
key客户端私钥路径(可选 默认空)
passwd私钥解密密码(可选 默认空)
Note
  • TLS 最低版本为 1.2,并同时验证证书链和连接目标主机名。
  • ca 留空时使用系统默认根证书;指定时使用给定 CA 文件。 -如果服务端要求客户端身份认证(双向 TLS/SSL),你需要提供一个有效的客户端证书。

◆ ~TcpClient()

stt::network::TcpClient::~TcpClient ( )
inline

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

Member Function Documentation

◆ close()

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

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

Returns
true:关闭成功,新建套接字成功 false:关闭成功,新建套接字失败

◆ connect()

bool stt::network::TcpClient::connect ( const std::string & ip,
const int & port )

向服务端发起tcp连接

Parameters
ip服务端ip
port服务端端口
Returns
true:DNS、TCP(以及可选 TLS)连接成功;false:失败。
Note
ip 也可以是域名。默认创建的是阻塞 socket;TLS 模式会设置 SNI 并校验证书主机名。

◆ getServerIP()

std::string stt::network::TcpClient::getServerIP ( )
inline

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

◆ getServerPort()

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

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

◆ isConnect()

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

返回对象的连接状态

Returns
true:已连接 false:未连接

◆ resetCTX()

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

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

Note
设置了的TLS参数伴随整个生命周期,除非调用这个函数重新设置
Parameters
TLStrue:启用TLS加密 false:不启用TLS加密 (默认为false不启用)
caCA 根证书文件路径;留空时使用操作系统默认信任库。
cert客户端证书路径(可选 默认空)
key客户端私钥路径(可选 默认空)
passwd私钥解密密码(可选 默认空)
Note
  • TLS 最低版本为 1.2,并同时验证证书链和连接目标主机名。
  • ca 留空时使用系统默认根证书;指定时使用给定 CA 文件。 -如果服务端要求客户端身份认证(双向 TLS/SSL),你需要提供一个有效的客户端证书。

The documentation for this class was generated from the following file: