void AbstractProtocol::sendMessage(const AbstractMessage &message) { QByteArray totalData; QByteArray messageData; MessageHeader header; static int nextSeq = 0; nextSeq++; message.serialize(&messageData); header.data.size = messageData.size(); header.data.type = message.getType(); header.data.seqNum = nextSeq; header.serialize(&totalData); totalData.append(messageData); qDebug() << "Sending Total size: " << totalData.size(); int written = 0; int totalSize = totalData.size(); while (written < totalSize) { int ret = socket->write(totalData.data() + written, totalSize - written); if (ret == -1) { qDebug() << "write error"; return; } written+=ret; } }
void AbstractProtocol::sendMessage(const AbstractMessage &message) { QByteArray totalData; QByteArray messageData; MessageHeader header; static int nextSeq = 0; nextSeq++; message.serialize(&messageData); header.data.size = messageData.size(); header.data.type = message.getType(); header.data.seqNum = nextSeq; header.serialize(&totalData); totalData.append(messageData); qDebug() << "Sending Total size 2: " << totalData.size(); qDebug() << "Bytes to write: " << socket->bytesToWrite(); int ret = socket->write(totalData); if (ret != totalData.size()) { qDebug() << "Error!! Ret = " << ret; qDebug() << socket->errorString(); } socket->flush(); }