Problem bei der Netzwerkkommunikation
Verfasst: 25. Februar 2009 17:01
hi
Ich schreibe gerade ein kleines Chatprogramm, habe aber ein Problem mit dem Server.
Ich habe mir zwar das loopback Example angesehen, hat mich aber nicht wirklich weitergebracht, da ich etwas anderes strukturiert habe.
Im Anhang ist das ganze Projekt nocheinmal.
Er bricht beim senden einfach ab.
Ich habe es im qt creator geschrieben
Ich schreibe gerade ein kleines Chatprogramm, habe aber ein Problem mit dem Server.
Ich habe mir zwar das loopback Example angesehen, hat mich aber nicht wirklich weitergebracht, da ich etwas anderes strukturiert habe.
Code: Alles auswählen
/* im Start */
ui->setupUi(this);
server = new QTcpServer();
connect(server,SIGNAL(newConnection()),
this,SLOT(incomingConnection()));
server->listen(QHostAddress::Any, 13000);
void QNetShare::readyRead()
{
QTcpSocket *socket = (QTcpSocket*)QObject::sender();
if (!socket)
return;
QString msg = QString::fromLocal8Bit(socket->readAll());
QMessageBox msgBox;
msgBox.setText(tr("%1").arg(msg));
msgBox.exec();
socket->close();
socket = 0;
delete socket;
}
void QNetShare::incomingConnection()
{
qDebug("incoming");
serversock = server->nextPendingConnection();
connect(serversock, SIGNAL(readyRead()),
this, SLOT(readReady()));
serversock->waitForBytesWritten(5000);
serversock->disconnectFromHost();
serversock = 0;
delete serversock;
// serverStatusLabel->setText(tr("Accepted connection"));
//server.close();
}
void QNetShare::on_btn_send_clicked()
{
newConnection();
}
void QNetShare::newConnection()
{
/*if (ui->edt_targetIP->text().isEmpty())
return; ist unter Kommentar, da ich zur Zeit noch mit Localhost arbeite*/
if (socket) {
socket->abort();
socket = 0;
delete socket;
}
QTcpSocket *socket;
socket = new QTcpSocket();
connect(socket,SIGNAL(readyRead()),this,SLOT(readyRead()));
connect(socket,SIGNAL(error(QAbstractSocket::SocketError)),
this,SLOT(socketError(QAbstractSocket::SocketError)));
socket->connectToHost(/* ui->edt_targetIP->text() */ QHostAddress::LocalHost, 13000);
socket->write("Hallo");
}
Er bricht beim senden einfach ab.
Ich habe es im qt creator geschrieben