Простите пожалуйста за некорректную информацию в прошлой теме.
Вообщем этот же сервер, на стр. браузера по адресу localhost он выводит дату.
Задание заключается в том, что при изменении адреса, например на: localhost/asdf он должен ввести ошибку,аналогичную ошибке 404,
в моем случае он выводит код ошибки "203"
заголовок(qsimpleserver.h)
C++ (Qt)
#ifndef QSIMPLESERVER_H
#define QSIMPLESERVER_H
#include <QTcpServer>
#include <QTcpSocket>
#include <QDebug>
#include <QDateTime>
class QSimpleServer : public QTcpServer
{
Q_OBJECT
public:
explicit QSimpleServer(QObject *parent = 0);
explicit CEditLineButton(QWidget *parent = 0);
~CEditLineButton ();
void setTextToEditLine (QString text);
void incomingConnection(int handle);
signals:
void clickButton ();
public slots:
void onReadyRead();
void onDisconnected();
};
#endif // QSIMPLESERVER_H
исходник1 (qsimpleserver.cpp)
C++ (Qt)
#include "qsimpleserver.h"
QSimpleServer::QSimpleServer(QObject *parent) :
QTcpServer(parent)
{
if(listen(QHostAddress::Any, 80)){
qDebug() << "Listening...";
}
else{
qDebug() << "Error while starting: " << errorString();
}
}
void QSimpleServer::incomingConnection(int handle)
{
QTcpSocket* socket = new QTcpSocket();
socket->setSocketDescriptor(handle);
connect(socket, SIGNAL(readyRead()), this, SLOT(onReadyRead()));
connect(socket, SIGNAL(disconnected()), this, SLOT(onDisconnected()));
}
void QSimpleServer::onReadyRead()
{
QTcpSocket* socket = qobject_cast<QTcpSocket*>(sender());
qDebug() << socket->readAll();
QString response = "HTTP/1.1 200 OK\r\n\r\n%1";
socket->write(response.arg(QTime::currentTime().toString()).toLocal8Bit());
socket->disconnectFromHost();
}
void QSimpleServer::onDisconnected()
{
QTcpSocket* socket = qobject_cast<QTcpSocket*>(sender());
socket->close(); /
socket->deleteLater();
}
исходник2(tst_simpleservertest.cpp)
C++ (Qt)
#include <QtCore/QCoreApplication>
#include "qsimpleserver.h"
int main(int argc, char *argv[])
{
QCoreApplication a(argc,argv);
QSimpleServer server;
return a.exec();
}
в про файле отличие от стандарта только:
C++ (Qt)
QT += testlib network
вообщем попытался сделать так:
C++ (Qt)
if((QHostAddress::LocalHost) == (QHostAddress::LocalHost))
{
socket->write(response.arg(QNetworkReply::ContentNotFoundError).toUtf8());
socket->disconnectFromHost();
}
else
{
socket->write(response.arg(QDateTime::currentDateTime().toString()).toUtf8());
socket->disconnectFromHost();
}
Но вывод на странице localhost и к примеру localhost/afag лишь код ошибки, а хотелось бы чтоб на localhost был код ошибки, а на другом собственно дата.
Надеюсь кто-нибудь меня поймет):