wo ist das "Shared" auf dem server oder auf dem client?
lese QSharedDataPointer..
Ich mache mir eine QUrl zum mysql verbinden
sieht so aus : mysql://username:pass@host:port/database
doch befor ich den mysql client auf dem server abfrage mache ich den port scan .. da man keinen TimeOut setzen kann in qmysql
den port muss innerhalb 500 millisekunden erreichbar sein...
Code: Alles auswählen
class ScanPort : public QThread
{
Q_OBJECT
public:
void SetUrl( QUrl check_url , int maxtime = 500 , QObject * redirect = 0 )
{
url = check_url;
receiver = redirect;
Timeout = maxtime;
setTerminationEnabled(true);
}
protected:
void run()
{
QTime st = QTime::currentTime();
m_Socket = new QTcpSocket();
m_Socket->connectToHost(url.host(),url.port(),QIODevice::ReadOnly);
if (m_Socket->waitForConnected(Timeout)) {
if (m_Socket->waitForReadyRead(Timeout)) {
////////////qDebug() << "### connect ok port " << url.port();
QTextStream *t = new QTextStream( m_Socket );
t->setCodec(QTextCodec::codecForMib(106));
int loops = 0;
while (!t->atEnd()) {
loops++;
response = t->readLine();
///////qDebug() << loops << " line " << response;
}
emit result(url.port(),runtime(st),true);
quit();
} else {
m_Socket->close();
////////qDebug() << "### connect nooo on port " << url.port();
emit result(url.port(),runtime(st),false);
quit();
}
} else {
m_Socket->close();
/////////qDebug() << "### connect nooo on port " << url.port();
emit result(url.port(),runtime(st),false);
quit();
}
}
int runtime( QTime go )
{
QTime now = QTime::currentTime();
return go.msecsTo ( now );
}
signals:
void result(int,int,bool); /* port , time , true = ok */
private:
QString response;
int Timeout;
QTcpSocket *m_Socket;
uint millisecond;
QUrl url;
QObject* receiver;
};
wenn das der fall ist dann verbinde ich den mysql client ...
bei unterbrechung gebe ich mit signale dass ganze von vorne...
fuktioniert aber nur wenn ich den envoirment QT_FATAL_WARNINGS = 1 setze ... warum weiss ich auch nicht...
wenn ich QT_FATAL_WARNINGS nicht setze sturtz die apps..
ich nehme an das es die Q_ASSERT (false) unterdruckt... und trotzdem weiter geht...
.........................
speack português italiano deutsch english castellà qt