On quarta-feira, 29 de janeiro de 2014 09:48:44, Guido Seifert wrote: > > Can you say what is happening at the TCP level? Are the packets being > > sent? Do they have the PSH flag set? Does the TV send back ACK packets? > > To tell you the truth, I don't know. This is normally a bit too low-level > for me. More or less I moved on, because even if I had seen a problem > within the TCP packets, I still would have been unable to fix it. If you > are interested, I would start wireshark again and check for the PSH flag > and ACK packets. But not before this weekend. I don't think it is a problem > in my code or in Qt, else the E series should be affected, too.
Well, the point is that we'd be able to rule it as a TCP stack problem or not. If it isn't a stack problem, then it's something that either Qt or you are doing, which might have feasible solutions. > > Is the problem that it should be replying with data over the TCP > > connection, but isn't? > > Yes. When I do a QTcpSocket::write(const QByteArray & byteArray) the correct > number of bytes written is returned. That number is not relevant. QTcpSocket is fully buffered, so it always accepts as many bytes as you've given it. That number is only telling you that those bytes got buffered properly. Do you get bytesWritten(qint64) emitted with a total count equalling that number of bytes? Alternatively, if you loop as while (socket->bytesToWrite() && socket->waitForBytesWritten()) ; Do you eventually get to bytesToWrite() == 0? Or does it time out trying to write? Since the OS TCP stack is *also* buffered, that only means the bytes got copied from userspace to the kernel (though, unlike QTcpSocket, the kernel buffers are not unlimited). If you get to bytesToWrite() == 0, the question is whether the other side is receiving them. You can find that out by running ss or netstat: E.g.: $ netstat -nt Active Internet connections (w/o servers) Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 112 10.24.4.51:47745 10.7.211.16:1080 ESTABLISHED The above is showing that my machine has 112 bytes in the send-queue yet to send the remote. Does the number go to zero? Or does it remain? -- Thiago Macieira - thiago.macieira (AT) intel.com Software Architect - Intel Open Source Technology Center
signature.asc
Description: This is a digitally signed message part.
_______________________________________________ Interest mailing list Interest@qt-project.org http://lists.qt-project.org/mailman/listinfo/interest