Impossible de récupérer les données
Bonsoir,
J'essaye par l’intermédiaire, des sockets envoyés des données sur le réseau (ici local)
J'ai essayé de placer un QDebug() dans getData() et il semblerai que le serveur ne reçoivent pas le données ou bien que le client ne les envois pas...
Voici mes code :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71
| #include "tcpserver.h"
TcpServer::TcpServer(QObject *parent) :
QObject(parent)
{
server = new QTcpServer(this);
if(!server->listen(QHostAddress::LocalHost, 7777))
{
qDebug() << "The server can't connect. Reason:" << server->errorString();
}
else
{
qDebug() << "The server is running on port" << server->serverPort();
connect(server, SIGNAL(newConnection()), this, SLOT(newConnection()));
}
tailleMessage = 0;
}
void TcpServer::newConnection()
{
QTcpSocket *client = server->nextPendingConnection();
qDebug() << "Client connected !";
connect(client, SIGNAL(readyRead()), this, SLOT(getData()));
connect(client, SIGNAL(disconnected()), this, SLOT(deconnectionClient()));
}
void TcpServer::getData()
{
QTcpSocket *socket = qobject_cast<QTcpSocket *>(sender());
if(socket == 0)
return;
QDataStream in(socket);
if(tailleMessage == 0)
{
if(socket->bytesAvailable() < (int)sizeof(quint16))
return;
in >> tailleMessage;
}
if(socket->bytesAvailable() < tailleMessage)
return;
QString message;
in >> message;
saveData(message);
tailleMessage = 0;
}
void TcpServer::deconnectionClient()
{
qDebug() << "Client disconnected !";
QTcpSocket *socket = qobject_cast<QTcpSocket *>(sender());
if (socket == 0)
return;
socket->deleteLater();
}
void TcpServer::saveData(const QString &data)
{
qDebug() << data;
} |
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41
| #include "mainwindow.h"
#include "ui_mainwindow.h"
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
}
MainWindow::~MainWindow()
{
delete ui;
}
void MainWindow::on_pushButton_clicked()
{
if(!(ui->lineEdit->text().isEmpty()) && !(ui->lineEdit_2->text().isEmpty()))
{
socket = new QTcpSocket(this);
socket->abort();
socket->connectToHost(QHostAddress::LocalHost, 7777);
sendData(ui->lineEdit->text());
sendData(ui->lineEdit_2->text());
}
socket->deleteLater();
}
void MainWindow::sendData(const QString &data)
{
QByteArray paquet;
QDataStream out(&paquet, QIODevice::ReadWrite);
out << (quint16) 0;
out << data;
out.device()->seek(0);
out << (quint16) (paquet.size() - sizeof(quint16));
socket->write(paquet);
} |