QServerSocket ableiten und Port übergeben?
Verfasst: 14. Januar 2005 16:17
Hallo Leute,
ich progge mir gerade ein Chat-Programm. Nun habe ich das Problem, dass ich den Chatserver von QServerSocket ableiten muss, und dabei möchte ich den Port als Argument an den Konstrukteur übergeben. Das klappt irgendwie nicht richtig. Wenn ich den Server ohne der Übergabe des Ports (als Argument an die Serverklasse) starte, dann klappts!
Hier ein paar Auszüge:
die Serverklasse:
der Aufruf:
Wie gesagt, wenn man den Konstrukteur auf:
ändert, und den Port "hardcoded" dann funzt es. Ich weiß, dass der Port vom Typ Q_UINT sein muss, trotzdem bekomme ich fehlermeldungen vom Compieler, dass kein passender Konstrukteur gefunden wird.
Vielen Dank schonmal für jeden Hinweis!
Ciao john
ich progge mir gerade ein Chat-Programm. Nun habe ich das Problem, dass ich den Chatserver von QServerSocket ableiten muss, und dabei möchte ich den Port als Argument an den Konstrukteur übergeben. Das klappt irgendwie nicht richtig. Wenn ich den Server ohne der Übergabe des Ports (als Argument an die Serverklasse) starte, dann klappts!
Hier ein paar Auszüge:
die Serverklasse:
Code: Alles auswählen
ChatServer::ChatServer(Q_UINT16, int, QObject *parent, const char *name)
: QServerSocket(parent, name)
{
//connect(mainWin, SIGNAL(setRemoteText(QString)), this, SLOT(sendRemoteText(QString)));
}
Code: Alles auswählen
void ChatServer::newConnection(int socketId)
{
socket = new QSocket(this);
connect(socket, SIGNAL(readyRead() ), this, SLOT(readClient()));
connect(socket, SIGNAL(delayedCloseFinished()), this, SLOT(discardClient()));
socket->setSocket(socketId);
stream.setDevice(socket);
stream << "Willkommen beim Chatserver!" << endl;
socket->flush();
emit newConnect();
}Code: Alles auswählen
server = new ChatServer(port, 1, this, "Server");
connect(server, SIGNAL(newConnect()), this, SLOT(connectionOK()));
connect(server, SIGNAL(endConnect()), this, SLOT(disconnectNet()));
connect(server, SIGNAL(setRemoteText(QString)), this, SLOT(getRemoteText(QString)));
connect(this, SIGNAL(killServer()), server, SLOT(discardClient()));Code: Alles auswählen
ChatServer::ChatServer(QObject *parent, const char *name)
: QServerSocket(parent, name)Vielen Dank schonmal für jeden Hinweis!
Ciao john