Cet emplacement doit placer des messages dans le tampon d'un socket, mais le signal readyRead() n'est pas envoyé. J'ai découvert que la taille des données écrites est la même que la taille du tableau, mais la méthode bytesAvailable() renvoie toujours zéro. ne comprends pas pourquoi il arriveQTcpSocket bytesAvailable() = 0
code:
void Client::slotMessageSend()
{
QByteArray array;
QDataStream str(&array, QIODevice::WriteOnly);
str.setVersion(QDataStream::Qt_4_5);
str << quint16(0) << QTime::currentTime() << ui->textMessage->toPlainText() ;
str.device()->seek(0);
str << quint16(array.size() - sizeof(quint16));
cout << pClientSocket->write(array) << endl;
cout << array.size()<< " " << pClientSocket->bytesAvailable() << endl;
ui->textMessage->setPlainText("");
}
Avez-vous vu les exemples de socket Qt? Ça a l'air un peu bizarre, qu'est-ce que tu essayes de faire avec ce code? Habituellement, vous écrivez sur une socket et le récepteur (c'est-à-dire un serveur de socket) peut renvoyer quelque chose et vous pouvez alors lire les données et avoir des octets disponibles et 'bytesAvailable()' sera '> 0'. – xander
Je veux écrire des données sur un socket et lire ces données sur mon client et mon serveur –