• 4405阅读
  • 2回复

Tcp接收数据的奇怪问题 [复制链接]

上一主题 下一主题
离线xiao_xiao_ca
 
只看楼主 倒序阅读 楼主  发表于: 2012-10-17
C/S,其中服务端是标准C完成的,先发送16位的数据头和4位的长度(表示后面将要发送的数据的真正长度),接着发送真正数据;
客户端用Qt完成,现在问题是:Qt客户端接收到的数据只有前20位,也就是数据头和表示数据长度的4位,而且收到的都是正确的,但是后面就没有数据了,而能确定的是,服务端所有数据都发送出来了,因为有一个MFC的客户端能收到所有的数据,请问大家,这是什么原因呢?Qt中读取的代码是这样的:tcpClient->read(buf, 16);//这步能读到16位数据头,经过验证也是正确的
tcpClient->read(buf, 4);//这步能读到4位的数据长度,验证也是正确的
tcpClient->read(buf, len);//len就是上一步得到的数据长度,但是这次的buf里就没有数据了。。。
离线dbzhang800

只看该作者 1楼 发表于: 2012-10-17
引用楼主xiao_xiao_ca于2012-10-17 14:48发表的 Tcp接收数据的奇怪问题 :
tcpClient->read(buf, len);//len就是上一步得到的数据长度,但是这次的buf里就没有数据了。。。

有没有数据你是如何判断的呢?
离线dxfans

只看该作者 2楼 发表于: 2012-11-07
有数据你再读噻
快速回复
限100 字节
 
上一个 下一个