/
tcpclient.cpp
61 lines (51 loc) · 1.51 KB
/
tcpclient.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
#include "tcpclient.h"
TcpClient::TcpClient(QString host, quint16 port)
{
this->host = host.length() > 0 ? host : "127.0.0.1";
this->port = port > 0 ? port : 27015;
tcpConnect();
}
TcpClient::~TcpClient()
{
tcpClient->abort();
delete tcpClient;
delete networkSession;
}
void TcpClient::tcpConnect()
{
tcpClient = new QTcpSocket(this);
connect(tcpClient, SIGNAL(readyRead()), this, SLOT(readData()));
connect(tcpClient, SIGNAL(error(QAbstractSocket::SocketError)), this, SLOT(displayError(QAbstractSocket::SocketError)));
tcpClient->connectToHost(host, port, QIODevice::ReadWrite);
}
void TcpClient::SendData(QByteArray data)
{
if(tcpClient->waitForConnected()){
tcpClient->write(data);
} else {
qCritical() << "Connection timeout occurred";
}
}
void TcpClient::displayError(QAbstractSocket::SocketError socketError)
{
switch (socketError) {
case QAbstractSocket::RemoteHostClosedError:
qCritical() << "Error: Remote Host Closed";
break;
case QAbstractSocket::HostNotFoundError:
qCritical() << "Error: Host Not Found";
break;
case QAbstractSocket::ConnectionRefusedError:
qCritical() << "Error: Connection Refused";
break;
default:
qCritical() << tcpClient->errorString();
}
}
void TcpClient::readData()
{
QTcpSocket* myServer = qobject_cast<QTcpSocket*>(sender());
QByteArray reply = myServer->readAll();
qDebug() << QString(reply);
emit ServerReply(QString(reply));
}