Ich schreibe Client/Server-Kommunikationssystem auf Qt. Ich verwende QTcpServer und QtcpSocket. Ich sende einige Informationen von der Clientseite, aber wie kann ich den Wert vom Server zurückgeben?QTcpServer: Wie gibt man einen Wert zurück?
Client Side
QTcpSocket *socket = new QTcpSocket(this);
socket->connectToHost("MyHost", "MyPort");
socket->write("Hello from Client...");
Server Side
QtSimpleServer::QtSimpleServer(QObject *parent) : QTcpServer(parent)
{
if (listen(QHostAddress::Any, "MyPort"))
{
qDebug() << "Listening...";
}
else
{
qDebug() << "Error while listening... " << errorString();
}
}
void QtSimpleServer::incomingConnection(int handle)
{
QTcpSocket *socket = new QTcpSocket();
socket->setSocketDescriptor(handle);
connect (socket, SIGNAL(readyRead()), this, SLOT(onReadyRead()));
}
void QtSimpleServer::onReadyRead()
{
QTcpSocket *socket = qobject_cast<QTcpSocket*>(sender());
qDebug() << socket->readAll();
socket->disconnectFromHost();
socket->close();
socket->deleteLater();
}
Sie 'socket- write' Methode> verwenden haben. Übrigens, Sie sollten beachten, dass das Paket fragmentiert sein kann, und es ist nicht garantiert, dass Sie alle Daten mit einem einzigen "readAll()" lesen werden. –
Wie kann ich einen Wert vom Server zurückgeben? Welchen Wert? Möglicherweise müssen Sie den Clientzeiger für weitere – saeed
@saeed speichern Zum Beispiel: Ich möchte an den Client "Hallo vom Server" senden. Wie kann ich es tun? –