folgender code:
communicator.h
Code: Alles auswählen
#ifndef COMMUNICATOR_H
#define COMMUNICATOR_H
#include <QTcpServer>
#include <QObject>
class Communicator : public QObject
{
Q_OBJECT
public:
Communicator();
private:
QTcpServer _clientInterface;
private slots:
void generatePages();
};
#endif
Code: Alles auswählen
#include <QTcpSocket>
#include <iostream>
#include "communicator.h"
#include "defaulthtmlpagegenerator.h"
Communicator::Communicator() :
QObject()
{
if(_clientInterface.listen(QHostAddress::Any, 80))
qCritical("Konnte Server nicht starten");
QObject::connect(&_clientInterface, SIGNAL(newConnection()),
this, SLOT(generatePages()));
}
void Communicator::generatePages()
{
std::cout << "EVENT:\tNeue Verbindungsanfragen eingegangen\n";
QTcpSocket* connections;
while(connections = _clientInterface.nextPendingConnection()){
PageGenerator* gen = new DefaultHtmlPageGenerator(connections->readAll());
connections->write(gen->generate().toUtf8());
std::cout << gen->generate().toAscii().data();
delete gen;
delete connections;
}
std::cout << "DONE:\tVerbindungsanfragen Bearbeiten" << std::endl;
ich sehe die richtige rückgabe im standardoutput, gen->generate() arbeitet also richtig. Nur leider kommt nichts davon beim client an, wenn dieser eine einfage sendet.
auch der rückgabewert von write() liefert nix :-\