From e38036524fdb050fcc6739d69360acf5805762ce Mon Sep 17 00:00:00 2001 From: Bent Bisballe Nyeng Date: Sat, 30 Apr 2022 16:18:36 +0200 Subject: Add title field to qookie-cast network package. Add tabs to Qookie-cast client. --- src/client.cc | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) (limited to 'src/client.cc') diff --git a/src/client.cc b/src/client.cc index 4d1bb7f..91f16d3 100644 --- a/src/client.cc +++ b/src/client.cc @@ -28,16 +28,28 @@ bool Client::connectToHost(const QString& host) return true; } -bool Client::writeData(const QByteArray& data) +bool Client::writeData(const QString& title, const QByteArray& data) { if(socket->state() != QAbstractSocket::ConnectedState) { return false; } - std::uint32_t size = data.size(); - socket->write((char*)&size, sizeof(std::uint32_t)); + auto title_data = title.toUtf8(); + std::uint32_t title_size = title_data.size(); + std::uint32_t data_size = data.size(); + + // firt write size of the entire payload (without the payload size) + std::uint32_t payload_size = data_size + title_size + sizeof(std::uint32_t); + socket->write((char*)&payload_size, sizeof(std::uint32_t)); + + // then write title size and title + socket->write((char*)&title_size, sizeof(std::uint32_t)); + socket->write(title_data); + + // finally write the rest of the payload socket->write(data); + return socket->waitForBytesWritten(100); // wait at most 100ms } @@ -77,5 +89,5 @@ void Client::timeout() void Client::retryConnect() { - socket->connectToHost(host, 1024); + socket->connectToHost(host, 10024); } -- cgit v1.2.3