summaryrefslogtreecommitdiff
path: root/src/client.cc
diff options
context:
space:
mode:
authorBent Bisballe Nyeng <deva@aasimon.org>2022-04-30 16:18:36 +0200
committerBent Bisballe Nyeng <deva@aasimon.org>2022-05-26 18:41:21 +0200
commite38036524fdb050fcc6739d69360acf5805762ce (patch)
tree302693b83dac8a8abf0b9859b6e7d4bbdc1ea04e /src/client.cc
parent0243cbe0170a768f8f8998c6f7f234869c8c77e6 (diff)
Add title field to qookie-cast network package. Add tabs to Qookie-cast client.
Diffstat (limited to 'src/client.cc')
-rw-r--r--src/client.cc20
1 files changed, 16 insertions, 4 deletions
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);
}