diff options
author | Nils Jeisecke <nils.jeisecke@saltation.com> | 2021-05-31 15:23:18 +0200 |
---|---|---|
committer | Nils Jeisecke <nils.jeisecke@saltation.com> | 2021-05-31 16:12:32 +0200 |
commit | 0c458ec8c96d15f96947f1fe401654a903152a72 (patch) | |
tree | 4baf50476e034ba116dbc7819cbfbac7d59e4ed9 /singleapplication.cpp | |
parent | Merge pull request #132 from itay-grudev/removed_incorrect_coment_in_basic_ex... (diff) | |
download | singleapplication-0c458ec8c96d15f96947f1fe401654a903152a72.tar.xz |
Add simple acknowledge protocol to ensure the server has received all data
The server now acknowledges every received message by sending a \r.
By waiting for the acknowledgement, clients should no longer terminate
too early, causing bytes getting lost in Qt's internal socket handling.
Message handling in the server is simplified because we can now rely
on the readyRead signal being raised for every frame.
This should finally solve #125 and #121.
What remains is to correctly handle data sent using
SingleApplication::sendMessage.
Diffstat (limited to 'singleapplication.cpp')
-rw-r--r-- | singleapplication.cpp | 5 |
1 files changed, 1 insertions, 4 deletions
diff --git a/singleapplication.cpp b/singleapplication.cpp index 7e153a0..09e264e 100644 --- a/singleapplication.cpp +++ b/singleapplication.cpp @@ -248,10 +248,7 @@ bool SingleApplication::sendMessage( const QByteArray &message, int timeout ) if( ! d->connectToPrimary( timeout, SingleApplicationPrivate::Reconnect ) ) return false; - d->socket->write( message ); - bool dataWritten = d->socket->waitForBytesWritten( timeout ); - d->socket->flush(); - return dataWritten; + return d->writeConfirmedMessage( timeout, message ); } /** |