Hi, Ich hab schon mal ein Spiel gemacht bei der man über Lan spielt.
Da funktionierte alles ohne Probleme... Doch nun bei meinem Pokerspiel das ich in OOP am machen bin stimmt etwas nicht. Obwohl ich in etwa den selben Code verwende um die Connection aufzubauen, sagt er mir connect() und close() seinen nicht deklariert. Wenn ich bei meinem altem Projekt über connect() fahre steht da bool QObject:: i.was... aber bei meinem Poker spiel kommt da garnichts.
Weiss einer woran das liegen könnte?
connect und close...
-
DBGTMaster
- Beiträge: 190
- Registriert: 19. August 2010 10:00
Re: connect und close...
Die Klasse QObject geerbt?
Beispiel?
Beispiel?
Re: connect und close...
hier das h file...
hier cpp (ist noch nicht fertig)
Code: Alles auswählen
#ifndef CCONNECT_H
#define CCONNECT_H
#include <CGame.h>
#include <QtGui>
#include <QtNetwork/QTcpSocket>
#include <QtNetwork/QTcpServer>
#include <QtNetwork/QNetworkInterface>
#include <QObject>
class CConnect
{
Q_OBJECT
public:
CConnect();
private:
QString getMyIP();
void acceptConnection();
void startRead();
void clientConnectionEstablished();
void build_connection(QString other_ip, quint16 other_port);
// used by tcp client
QTcpSocket Clientt;
QTcpServer Server; // used by tcp server
QTcpSocket *pServerClient;
CGame *game;
};
#endif // CCONNECT_H
hier cpp (ist noch nicht fertig)
Code: Alles auswählen
#include "CConnect.h"
CConnect::CConnect()
{
game = new CGame;
// -- Server Setup ------------
connect(&Server, SIGNAL(newConnection()), this, SLOT(acceptConnection()));
bool ok = Server.listen();
if (!ok) {
QMessageBox::critical(this,"TCP Server", "Unable to start the server: " + Server.errorString());
close();
return;
}
QString ipAddress = getMyIP();
quint16 port = Server.serverPort();
qDebug()<<"The Server is running on IP: "<<ipAddress<<" Port: "<<port<<" Run a client now." ;
// -- Client Setup ------------
connect(&Clientt, SIGNAL(connected()), this, SLOT(clientConnectionEstablished()));
}
void CConnect::acceptConnection()
{
pServerClient = Server.nextPendingConnection();
connect(pServerClient, SIGNAL(readyRead()),this, SLOT(startRead()));
}
void CConnect::clientConnectionEstablished() {
qDebug()<<"verbindung hergestellt";
}
void CConnect::build_connection(QString other_ip,quint16 other_port){
QHostAddress addr(other_ip);
Clientt.connectToHost(addr, other_port);
}
void CConnect::startRead()
{ //wenn weniger als 1 byte warten sonst aus der methode kicken
if (pServerClient->bytesAvailable() < 1)
return;
// anzahl bytes lesen
QByteArray empfangpacket;
empfangpacket = pServerClient->read(pServerClient->bytesAvailable());
//eingelesenes bearbeiten
switch(empfangpacket[0]){
case 's':QMessageBox::information(this,"Bereit?","Wenn sie bereit sind bitte Ready anklicken.",QMessageBox::Ok);
game->first=false;
break;
case 'g':
break;
default :
break;
}
}
-
Christian81
- Beiträge: 7319
- Registriert: 26. August 2004 14:11
- Wohnort: Bremen
- Kontaktdaten:
Re: connect und close...
Warum liest du nicht einfach mal das was DBGTMaster geschrieben hast und hälst dich dran?
Siehe auch http://doc.qt.nokia.com/4.7/signalsandslots.html
Siehe auch http://doc.qt.nokia.com/4.7/signalsandslots.html
MfG Christian
'Funktioniert nicht' ist keine Fehlerbeschreibung
'Funktioniert nicht' ist keine Fehlerbeschreibung
Re: connect und close...
Ich hab das Problem gefunden... ich musste von QObject erben... das war alles^^
Re: connect und close...
und nun kann ich keine pointer mehr machen
hahahha wtf...
