Da die Nummer mit den QThreads auch noch ne Sache für sich ist, hab ich das jetzt erstmal ausgelassen. Ansonsten trenne ich ganz gerne die Aufgaben, weswegen mir Threads schon ganz gelegen kommen würden. Das ist auch der Grund, warum ich für eingehende und ausgehende Daten getrennte Sockets halten möchte.
Nun habe ich das ganze mal umgesetzt und es scheint auch zu funktionieren. Zumindest kommen die Testnachrichten, die ich vom QT Client an das Board sende an und werden mir auch angezeigt. Umgekehrt gibt mir der Code, den ich für das Board geschrieben habe, keine Fehlermeldung aus, wenn es die Daten verschickt. Das heißt, eine Verbindung konnte hergestellt werden. Nur will ich eben die Daten auch auslesen können, die mir da geschickt werden, was aber gerade nicht funktioniert, weil trotz passendem connect() der zugehörige Slot nicht ausgeführt wird. Protokollmäßig ist das ganze textbasiert.
Code:
/* Server Connections */
connect(server->socket_server, SIGNAL(newConnection()), this, SLOT(slotRead()));
Wobei slotRead() so aussieht
Code:
void QtClientGui::slotRead()
{
QMessageBox::information(this,tr("Alarm"),tr("slotRead()"));
QFile file("recv.txt");
QString lines;
file.open(QIODevice::Append | QIODevice::Text);
QTextStream incoming(&file);
while(server->socket_var->canReadLine())
{
lines.append(server->socket_var->readLine());
incoming << lines << endl;
}
}
Hat vielleicht jemand eine Ahnung? Wenn noch mehr Informationen/Code benötigt werden, reiche ich das natürlich nach. Danke schonmal.
Kleine Anmerkung: Das ist alles noch Versuchscode, für Verbesserungsvorschläge bin ich natürlich offen, relevant ist für mich jetzt aber erstmal die Problemlösung.
Lesezeichen