1 Star 0 Fork 1

fensnote / qt4-tcp端口转发工具

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
ctcpsvrproc.cpp 2.14 KB
一键复制 编辑 原始数据 按行查看 历史
fens 提交于 2018-06-12 16:54 . 初次提交
#include "ctcpsvrproc.h"
CTcpSvrProc::CTcpSvrProc()
{
serverIP = new QHostAddress;
tcpSocket = new QTcpSocket;
bConnectFlag = false;
QObject::connect(tcpSocket, SIGNAL(readyRead()),this, SLOT(onDataRecv()));
QObject::connect(tcpSocket, SIGNAL(disconnected()),this, SLOT(slotDisconnected()));
connect(tcpSocket, SIGNAL(connected()), this , SLOT(onConnected()));
}
CTcpSvrProc::~CTcpSvrProc()
{
delete serverIP;
delete tcpSocket;
}
//连接服务器
void CTcpSvrProc::connectSvr(QString sIp, QString sPort)
{
if ( bConnectFlag )
{
qDebug()<<"已经连接了!";
return;
}
serverIP->setAddress(sIp);
port = sPort.toShort();
tcpSocket->connectToHost(*serverIP,port);
return;
}
//主动断开处理
void CTcpSvrProc::disconnectSvr()
{
tcpSocket->disconnectFromHost();
tcpSocket->close();
bConnectFlag = false;
return ;
}
//设备连接成功后,会收到这个信号
void CTcpSvrProc::onConnected()
{
disErrMsg("连接设备成功!");
bConnectFlag = true;
}
//数据接收处理
void CTcpSvrProc::onDataRecv()
{
while (tcpSocket->bytesAvailable()>0)
{
QByteArray datagram;
datagram.resize(tcpSocket->bytesAvailable());
tcpSocket->read(datagram.data(), datagram.size());
emit onHasData(datagram);
}
}
//被动断开处理
void CTcpSvrProc::slotDisconnected()
{
disErrMsg("与服务器连接断开");
bConnectFlag = false;
emit onDisconnect();
}
//向服务器发送数据
void CTcpSvrProc::sendData(QByteArray &qbData)
{
int ret = tcpSocket->write(qbData.data(), qbData.size());
if(ret < 0)
{
disErrMsg("CTcpSvrProc::sendData 发送失败");
disconnectSvr();
emit onDisconnect();
}
}
//向服务器发送数据
void CTcpSvrProc::sendData(const char *pData, int iDataLen)
{
int ret = tcpSocket->write(pData, iDataLen);
if(ret < 0)
{
disErrMsg("CTcpSvrProc::sendData 发送失败");
disconnectSvr();
emit onDisconnect();
}
}
//用于向ui层发送需要显示的错误信息的信号
void CTcpSvrProc::disErrMsg(QString str)
{
emit onErrorMsg(str);
}
C++
1
https://gitee.com/fensnote/qt4tcp_port_forwarding_tool.git
git@gitee.com:fensnote/qt4tcp_port_forwarding_tool.git
fensnote
qt4tcp_port_forwarding_tool
qt4-tcp端口转发工具
master

搜索帮助