我有几个关于发送图像的问题。
如何处理不同类型的文件,jpeg,png等。
如果文件很大,我可以使用序列号...但是如果我不知道序列号的数量,我不知道如何停止重复。
我对传输图像/文件的了解几乎没有。我以前从来没有编过类似的东西。希望得到一些提示和技巧=)
非常感谢。
我也在使用QT,如果这对我的情况有帮助的话。
答案 0 :(得分:3)
至少对于图像,假设您正在使用QImage,您可以使用QDataStream将QImage转换为QByteArray,然后可以使用write()将其写入QTcpSocket对象。使用此方法可以将几乎任何Qt的数据类型序列化为QByteArray。
对于一般文件,QIODevice(QFile的基础等)提供readAll()等读取函数,它将整个文件读入QByteArray,以供您发送。
您将在Qt发行版中找到许多网络示例。见Qt助理 - >内容 - >教程和示例 - >网络了解更多信息。
答案 1 :(得分:2)
如果使用TCP套接字,则不需要序列号,因为TCP已经确保数据的到达顺序与发送的顺序相同。只需发送数据,完成后关闭连接。您可以选择使用某种自定义类型的数据包标头来提供其他信息(例如,如果您想通过一个连接传输多个文件)。
答案 2 :(得分:0)
像传输任何其他二进制数据一样传输它们。 send()
,recv()
。或者Qt提供的任何抽象。