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
| 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