Seite 1 von 1
connect und close...
Verfasst: 8. Dezember 2011 17:27
von Nalid
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?
Re: connect und close...
Verfasst: 8. Dezember 2011 19:53
von DBGTMaster
Die Klasse QObject geerbt?
Beispiel?
Re: connect und close...
Verfasst: 8. Dezember 2011 23:05
von Nalid
hier das h file...
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;
}
}
Re: connect und close...
Verfasst: 9. Dezember 2011 06:04
von Christian81
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
Re: connect und close...
Verfasst: 9. Dezember 2011 10:30
von Nalid
Ich hab das Problem gefunden... ich musste von QObject erben... das war alles^^
Re: connect und close...
Verfasst: 9. Dezember 2011 11:16
von pfid
Re: connect und close...
Verfasst: 9. Dezember 2011 14:00
von Nalid
und nun kann ich keine pointer mehr machen

hahahha wtf...