-
Notifications
You must be signed in to change notification settings - Fork 0
/
NetReceiveThread.h
70 lines (51 loc) · 2.7 KB
/
NetReceiveThread.h
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
64
65
66
67
68
69
70
//----------------------------------------------------------------------------//
// *** МНОГОПОТОЧНАЯ КРОССПЛАТФОРМЕННАЯ СИСТЕМА ОБМЕНА ДАННЫМИ *** //
// //
// Файл NetReceiveThread.h //
// //
// *** TNETRECEIVETHREAD ПОТОК ПРИЕМА ДАННЫХ ИЗ ЛОКАЛЬНОЙ СЕТИ *** //
// //
// //
// Автор ГЛУЩЕНКО Сергей //
// //
// Москва //
//----------------------------------------------------------------------------//
#ifndef NETRECEIVETHREAD_H
#define NETRECEIVETHREAD_H
#include <QTcpSocket>
#include <QHostAddress>
#include "BasicThread.h"
#include "ByteBuffer.h"
class TNetReceiveThread : public TBasicThread
{
Q_OBJECT
protected slots:
//Обработчик события: "TCP-клиент передает информацию"
void OnRead(void);
//Обработчик события: "TCP-клиент отключился"
void OnDisconnect(void);
private:
QTcpSocket* Socket;
protected:
QString TempCatalog; //Каталог временных файлов
QString Address; //IPv4-адрес TCP-клиента
TByteBuffer Buffer; //Буфер заголовка данных
//Выуживает IPv4-адрес, с которого пришли данные
void SelectAddress(void);
//Читает все данные из сокета, которые пришли в "пакете"
QByteArray ReadData(void);
public:
TNetReceiveThread(void);
~TNetReceiveThread(void);
//Рабочий метод потока
void run(void);
//Засекает время начала работы потока, очищает атрибут ErrorNote
void CheckStart(void);
//Устанавливает сокет, по которому будут приходить данные из локальной сети
void SetSocket(QTcpSocket* _Socket);
//Устанавливает каталог временных файлов
void SetTempCatalog(QString _TempCatalog);
//Возвращает IPv4-адрес TCP-клиента
QString GetAddress(void);
};
#endif