From 5c815484e63280f9fdbe167149a5f693a29945b9 Mon Sep 17 00:00:00 2001 From: Niklas Date: Wed, 13 Jul 2011 17:03:29 +0200 Subject: multiple clients possible. inserted something into _send_message --- workspace/LogReceiver/logreceiver.cpp | 83 +++++++++++++++++++++++------------ 1 file changed, 54 insertions(+), 29 deletions(-) (limited to 'workspace/LogReceiver/logreceiver.cpp') diff --git a/workspace/LogReceiver/logreceiver.cpp b/workspace/LogReceiver/logreceiver.cpp index 6988463..29ea8d8 100644 --- a/workspace/LogReceiver/logreceiver.cpp +++ b/workspace/LogReceiver/logreceiver.cpp @@ -1,5 +1,6 @@ #include #include +#include #include #include @@ -13,7 +14,7 @@ LogReceiver::LogReceiver(QWidget *parent) : QDialog(parent) { - ui.setupUi(this); + //ui.setupUi(this); statusLabel = new QLabel; quitButton = new QPushButton(tr("Quit")); @@ -51,32 +52,65 @@ LogReceiver::~LogReceiver() { } - void LogReceiver::handleNewConnection() - { - qDebug() << "New Connection arrived"; +void LogReceiver::handleNewConnection() { + qDebug() << "New Connection arrived"; - clientSocket = server->nextPendingConnection(); - connect(clientSocket, SIGNAL(disconnected()), - clientSocket, SLOT(deleteLater())); - connect(clientSocket, SIGNAL(readyRead()), this, SLOT(handleNewInput())); - } + QLocalSocket * client = server ->nextPendingConnection(); + clients.insert(client, client); + connect(client, SIGNAL(disconnected()), client, SLOT(deleteLater())); + connect(client, SIGNAL(readyRead()), this, SLOT(handleNewInput())); +} + +void LogReceiver::handleNewInput() { + + QObject* sender = const_cast (QObject::sender()); + QLocalSocket* socket = static_cast (sender); + + QLocalSocket * client = clients.value(socket); + + QByteArray data = client->readAll(); + QString logMsg(data); + QString s_state = logMsg.section(";", 0, 0); + QString s_subState = logMsg.section(";", 1, 1); + QString msg = logMsg.section(";", 2, 2); + + qDebug() << logMsg; - void LogReceiver::handleNewInput() { + qDebug() << msg; - QByteArray data = clientSocket->readAll(); - char * cdata = new char[data.size() +1]; - qDebug() << data.size(); - qDebug() << strlen(cdata); - strcpy(cdata, data.data()); - qDebug() << strlen(cdata); - qDebug() << cdata; - int st, sst; - char str[40]; - sscanf(cdata, "%d;%d;%s",&st,&sst,str); + int st = s_state.toInt(); + int sst = s_subState.toInt(); switch (st) { case STAT_OK: qDebug() << "received stat_ok"; + switch (sst) { + case DHCP_DISCOVER: + break; + case DHCP_OFFER: + + break; + case DHCP_REQUEST: + + break; + case DHCP_DECLINE: + + break; + case DHCP_ACK: + + break; + case DHCP_NAK: + + break; + case DHCP_RELEASE: + + break; + case DHCP_INFORM: + + break; + default: + break; + } break; case STAT_ERROR: qDebug() << "received stat_error"; @@ -85,15 +119,6 @@ LogReceiver::~LogReceiver() { qDebug() << "undefined status"; } - qDebug() << st; - QString logMsg(data); - - /** - * verarbeite den string - */ - - qDebug() << logMsg; - statusLabel->setText(logMsg); } -- cgit v1.2.3-55-g7522