| 12
 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
 
 | System::System(QSettings *settings, QSystemTrayIcon *sysTray) : QObject()
{
	_server = new QTcpServer;
	_client = new QTcpSocket;
	_sysTray = sysTray;
	_settings = settings;
 
	if(!_server->listen(QHostAddress::Any, settings->value("localPort").toInt()))
		sysTray->showMessage("Erreur de connexion", "La connexion na pas pu être établie sur le port <strong>"+QString::number(settings->value("localPort").toInt())+"</strong>. Vérifiez la configuration de votre pare-feu et de votre router.", QSystemTrayIcon::Critical, 5000);
	else
	{
		_client->connectToHost(settings->value("targetHost").toString(), settings->value("targetPort").toInt());
		connect(_client, SIGNAL(error(QAbstractSocket::SocketError)), this, SLOT(clientError(QAbstractSocket::SocketError)));
		connect(_client, SIGNAL(connected()), this, SLOT(connected()));
		connect(_server, SIGNAL(newConnection()), this, SLOT(newConnection()));
	}
}
 
void System::sendAlert()
{
	QByteArray packet;
	QDataStream out(&packet, QIODevice::WriteOnly);
 
	out << "K";
 
	_distantClient->write(packet);
}
 
void System::connected()
{
	_sysTray->setIcon(QIcon(":/idle.png"));
	_sysTray->setToolTip("Prêt - Aucune alerte");
}
 
void System::newConnection()
{
	_distantClient = _server->nextPendingConnection();
	_sysTray->showMessage("Connecté", "Connecté", QSystemTrayIcon::Information);
	connect(_distantClient, SIGNAL(readyRead()), this, SLOT(alertReceived()));
}
 
void System::alertReceived()
{
	std::cout << "Recu" << std::endl;
 
	QDataStream in(_distantClient);
 
	QString datas;
	in >> datas;
 
	QMessageBox::information(NULL, datas, datas);
} | 
Partager