【问题标题】:QUdpsocket send and receive an imageQUdpsocket 发送和接收图像
【发布时间】:2012-01-02 07:28:34
【问题描述】:

我想抢电脑屏幕。我使用 QPixmap::grab,我得到了一个 QPixmap。然后我想使用 QUdpsocket 发送这个图像。图像已经转换为二进制。 http://www.java2s.com/Code/Cpp/Qt/Udpserver.htm 的demo可以发送和接收图片,但是使用像素,我想每250ms发送一次所有的二进制数据。

【问题讨论】:

  • 这一切的问题是什么?你想寄什么?作为 QByteArray 的二进制数据?乌查尔*?您链接的示例有什么不清楚的地方?

标签: image qt sockets send


【解决方案1】:

如果您想一次性发送整个图像,您可以尝试使用QDataStream 序列化QByteArray

这样做的问题是 UDP 数据包的大小有限,如果太大可能会产生碎片,虽然大数据包可能在您的 LAN 上工作,但它们可能会在互联网上产生碎片。由于 UDP 不像 TCP 那样提供排序保证,因此如果没有 QDataStream 标头,片段可能会以错误的顺序出现。这可能就是为什么在您的链接示例中他们一次只发送一行。

您可能想阅读 TCP 和 UDP 的比较并评估哪种更适合您的需求。

【讨论】:

    猜你喜欢
    • 2019-08-03
    • 1970-01-01
    • 2015-01-08
    • 2017-10-24
    • 2016-05-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多