QT组播实现多人屏幕共享的程序
来源:互联网 发布:逆袭网络剧7第一集哇趣 编辑:程序博客网 时间:2024/06/10 06:27
屏幕共享程序的实现:发送端(共享屏幕服务端) : 1. 获取桌面图像 QScreen *screen = QApplication::primaryScreen(); //获取当前程序的主窗口对象 QPixmap map = screen->grabWindow(QApplication::desktop()->winId()); //调用主窗口对象的捕捉窗口图像,并传递桌面窗口的id号 2. 编码成jpg QByteArray ba; QBuffer bf(&ba); map.save(&bf, "jpg", 30) // 30表示压宿率,值从0 – 100, 值越小表示编码出来的图像文件就越小,当然也就越不清晰 3. 用udp组播发出. 组播的编程参考http://blog.csdn.net/jklinux/article/details/72123951 一张jpg大概100K, 每次传输4K字节, 需分成多次传输. 每次桌面图像编码成jpg, 图像大小是不固定的. 每张图像传输第一次时,发出"newImage:长度", QUdpSocket成功发出个部分数据后, waitForBytesWritten等待发出,完成后再发出下一部分.接收端: 1. 创建udp对象,加入组播 2. 接收数据到内存数据里,并且判断。 如接收到"newImage:长度"则表示上一张图像已传输完毕,可以把上一张图像刷出来了。并且也知道下一张图像的长度。 3. 接收完成一张图像后。使用QPixmap从内存数组里加载图像. QPixmap map; map.loadFromData((uchar *)data_pic, len_recv); label->setPixmap(map);
完整工程源码:
http://download.csdn.net/detail/jklinux/9843418
阅读全文
4 1
- QT组播实现多人屏幕共享的程序
- 16 QT 的网络组播程序
- QT 实现屏幕共享,遇到udp掉包的问题
- socket 实现最小化组播(多播)程序
- Qt组播(多播)总结
- 组播(多播)的C程序实战
- 组播(多播)的C程序实战
- 组播(多播)的C程序实战
- 组播(多播)的C程序实战
- 【VS开发】组播(多播)的C程序实战
- QT截取屏幕的实现
- QT截取屏幕的实现
- Qt调用jrtplib实现单播、多播和广播
- Qt调用jrtplib实现单播、多播和广播
- Qt UDP组播的应用
- JAVA实现UDP组播聊天程序
- 多人共享的单屏幕3D
- 替代 NetMeeting 的多人屏幕共享工具
- Shell Programming(一)——重定向与管道
- Edittext光标移到最后
- 精彩博客
- Java 练习题
- 免费的论文查重网站
- QT组播实现多人屏幕共享的程序
- Android开发必备的一些网址
- 链表的常见实现
- 链表的常见实现
- wordpress后台多媒体管理插件
- WPF 如何在后台进行控件属性的绑定MVVM
- scala中模式匹配中的@代表什么意思
- 高并发量网站解决办法
- 欢迎使用CSDN-markdown编辑器