Qt中tcp传输文件遇到的问题

来源:互联网 发布:珠宝设计绘图软件 编辑:程序博客网 时间:2024/06/05 06:32
我在用tcp传文件的过程中,遇到了“掉帧”的情况,即收到的文件大小要比实际文件大小小,使得文件被破坏。我用的方法是先把文件的大小、名称等打包成文件头先传输过来,然后再传文件的本体。客户端进行接收的时候,先接受文件头,然后建立空文件,再接收后续的数据,写入空文件中。经过调试,发现,我在socket里面写了文件头以后,客户端的socket并没有马上读取文件头,而是等到了socket数据达到一定量的时候,才读取的。所以,我第一次接收到的文件并不仅仅是文件头,而是文件头+部分文件数据。而我处理的时候只处理了文件头,而将那部分附加的数据忽略掉了,导致文件不完整。
原创粉丝点击