QTcpSocket 和发送二进制数据的问题
有以下代码:
QFile in("c:\\test\\pic.bmp");
in.open(QFile::ReadOnly);
QByteArray imageBytes = in.readAll();
socket->write(bytesToSend);
在服务器上,我仅接收 .bmp 文件的标头。什么会导致这种行为?以及如何解决这个问题?
There is following code:
QFile in("c:\\test\\pic.bmp");
in.open(QFile::ReadOnly);
QByteArray imageBytes = in.readAll();
socket->write(bytesToSend);
On server, i'm receiving only header of .bmp file. What could cause such behavior? And How to solve this problem?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
此方法最多写入您的数据大小的字节数。但其实可以少写一点。它实际上返回发送的字节数。因此,您应该循环发送其余数据,直到所有内容都发送完毕。像这样。
这是本机套接字行为。
This method writes at most number of bytes which is your data size. But can actually write less. It actually returns number of bytes sent. So you should make a loop sending the rest of data until everything is sent. Like this.
This is a native socket behavior.