ich habe ein Problem mit QTcpSocket.
Den Verbindungsaufbau habe ich anscheinend hinbekommen, aber dann läuft das Ganze in eine Fehlermeldung.
Hier erstmal mein Quellcode:
Code: Alles auswählen
void connectToServer(void){
pushButton_abfragen->setText(tr("Abfragen 2......"));
tcpsocket.connectToHost(lineEdit_ipgypsy->text(),5050);
pushButton_abfragen->setText(tr("Abfragen ......"));
pushButton_upload->setEnabled(false);
pushButton_abfragen->setEnabled(false);
};//connectToServer
void sendRequest(void){
QByteArray block;
QDataStream out(&block, QIODevice::WriteOnly);
out.setVersion(QDataStream::Qt_4_2);
QString abfrage("SELECT * FROM Historie; \r\n");
out << quint16(0) << abfrage.toAscii();
out.device()->seek(0);
out << quint16(block.size() - sizeof(quint16));
tcpsocket.write(block);
pushButton_abfragen->setText(tcpsocket.errorString());
};//sendRequest
void getData(void){
pushButton_abfragen->setText(tr("Abfragen 2......"));
pushButton_abfragen->setText(tcpsocket.errorString()+" --1");
QFile confdatei("testdata.txt");
confdatei.open(QIODevice::WriteOnly);
QDataStream conf(&confdatei);
QByteArray ip,wert,datum;
conf.setVersion(QDataStream::Qt_4_2);
//pushButton_abfragen->setText(tcpsocket.errorString()+" --2");
QDataStream in(&tcpsocket);
in.setVersion(QDataStream::Qt_4_2);
//pushButton_abfragen->setText(tcpsocket.errorString()+" --3");
forever{
if(nextBlockSize == 0){
if(tcpsocket.bytesAvailable() < sizeof(quint16)){ break; }
in >> nextBlockSize;
}
if(nextBlockSize == 0xFFFF){
closeConnection();
break;
}
if(tcpsocket.bytesAvailable() < nextBlockSize){ break;}
conf << tcpsocket.readAll();//ip << wert << datum;
nextBlockSize = 0;
}
};//getData
void closeConnection(void){
tcpsocket.close();
pushButton_abfragen->setText(tr("Daten abfragen"));
pushButton_upload->setEnabled(true);
pushButton_abfragen->setEnabled(true);
};//closeConnection
void displayError(QAbstractSocket::SocketError socketError)
{
switch (socketError) {
case QAbstractSocket::RemoteHostClosedError:
break;
case QAbstractSocket::HostNotFoundError:
QMessageBox::information(this, tr("Fortune Client"),
tr("The host was not found. Please check the "
"host name and port settings."));
pushButton_abfragen->setText(tr("Daten abfragen"));
pushButton_upload->setEnabled(true);
pushButton_abfragen->setEnabled(true);
break;
case QAbstractSocket::ConnectionRefusedError:
QMessageBox::information(this, tr("Fortune Client"),
tr("The connection was refused by the peer. "
"Make sure the fortune server is running, "
"and check that the host name and port "
"settings are correct."));
pushButton_abfragen->setText(tr("Daten abfragen"));
pushButton_upload->setEnabled(true);
pushButton_abfragen->setEnabled(true);
break;
default:
QMessageBox::information(this, tr("Fortune Client"),
tr("The following error occurred: %1.")
.arg(tcpsocket.errorString()));
pushButton_abfragen->setText(tr("Daten abfragen"));
pushButton_upload->setEnabled(true);
pushButton_abfragen->setEnabled(true);
}
}
Die entsprechenden connect Aufrufe habe ich auch gemacht.
An der Stelle
Code: Alles auswählen
pushButton_abfragen->setText(tcpsocket.errorString()+" --1");Kann mir jemand sagen was ich falsch mache?
Gruß,
SuperSonik