我想抓住电脑屏幕。我使用QPixmap :: grab,我得到了一个QPixmap。然后我想使用QUdpsocket发送此图像。图像已经转换为二进制。 http://www.java2s.com/Code/Cpp/Qt/Udpserver.htm的演示可以发送和接收图像,但使用像素,我想每250ms发送所有二进制数据。
答案 0 :(得分:1)
如果您想一次性发送整个图片,可以尝试使用QDataStream
序列化QByteArray
。
这个问题是UDP数据包的大小有限,如果太大,可能会碎片化,虽然大数据包可能在你的局域网上运行,但它们可能会在互联网上碎片化。由于UDP不提供像TCP这样的排序保证,因此在没有QDataStream标头的情况下,片段可能会以错误的顺序出现。这可能就是为什么在你的链接示例中他们一次只发送一行。
您可能希望阅读TCP和UDP的比较,并评估哪种更适合您的需求。