-
Notifications
You must be signed in to change notification settings - Fork 0
/
client.cpp
66 lines (55 loc) · 1.31 KB
/
client.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
62
63
#include "client.h"
//nimmt das datenobjekt entgegen und legt einen tcpSocket an
Client::Client(Daten *data,QObject *parent) :
QObject(parent)
{
this->data = data;
tcpSocket = new QTcpSocket(this);
connected = false;
QObject::connect(this,SIGNAL(socketConnected()),this,SLOT(sendMessage()));
}
Client::~Client()
{
tcpSocket->close();
delete data;
delete tcpSocket;
}
//Verbindungsaufbau zu host unter Adresse: address und mit dem Port: port
void Client::connectSocket(QString address, int port)
{
tcpSocket->abort();
try
{
tcpSocket->connectToHost(address,port);
}
catch(...)
{
}
tcpSocket->waitForConnected(500);
if(tcpSocket->state() == QTcpSocket::ConnectedState)
{
connected = true;
emit socketConnected();
}
else
{
emit connectionError("Es konnte keine Verbindung zum Server aufgebaut werden.");
}
}
//startet den Thread zum senden der Steuerdaten
void Client::sendMessage()
{
if (connected)
{
thread = new ClientThread(tcpSocket,data);
connect(thread, SIGNAL(finished()),this,SLOT(deleteLater()));
thread->start();
}
}
//schließt die Verbindung zum Host
void Client::disconnect()
{
thread->stop();
tcpSocket->disconnectFromHost();
tcpSocket->close();
}