如果在客户端:
this->tcpSocket->write(str->toAscii());
this->tcpSocket->close();
对于以上的代码,我有两个问题:
第一:
虽然是先write后close,但是网络传输不能确保write的数据比close的信息先到达目的主机,可能导致目的主机的socket还没有接收完数据,就被close了
第二:
即时write的数据全部比close信息先到达目的主机,但通常我们用readAll()或者其它的函数去读取接收的数据,如果由于服务器正忙,readAll()函数被延迟了,
在readAll()之前close()信息到达,那么,我们readAll()得出的数据还是空的...
我不理解tcp协议在QTcpSocket里是如何运作的?
我们tcpSocket->write()后,如何得知目的主机已经接收到所有数据? 好让我们关闭socket?
[ 此帖被iiiyyyhhhsss在2010-03-22 12:57重新编辑 ]