qt QtUdpSocket
Today’s basic job is to watch over a machine and doing basic communication.
How to watch over if the machine is online?
Basic Idea: Because we are transferring Datagrams, so useQSocket.hasPendingDataGrams()
. However the socket states changes very quickly, so use a for-loop to ‘wait’ until a datagram is received and if so, return true.How to auto-find the IP? Use multicast socket, then record the ip addr when recvdatagram() is called.
My_socket->bind(QHostAddress::AnyIPv4, m_LimitMPort,QUdpSocket::ShareAddress | QUdpSocket::ReuseAddressHint)// return true if succesful
My_socket-> joinMulticastGroup(QHostAddress("224.224.224.224"))
- How to transfer my own defined structure?
Cause I have defined a structure for data, I need to cast it to char* as this is qt pre-written function in writedatagram method call.
Solution: use memcpy to copy my data into a char*, such as
int size = sizeof(My_struct1) + sizeof(My_struct2);
char* buffer[size] = 0;
memcpy(buffer, &transfer1, sizeof(My_struct1));
memcpy(buffer + sizeof(transfer1), &transfer2, sizeof(My_struct2));
Remember always do the pointer bias.
This also works when I have to parse a received bytes Array to my own defined struct.
*recorded_ = *((My_struct *)(m_BytesArray))// Firstly I cast the pointer type then I give the value to recorded, or the value get wasted.
- Always use mutex when operating on the data queue or vector,
- connect(socket, SIGNAL, Qobject, SLOT) means socket would operate SLOT when a SIGNAL is emitted and caught. It’s like abstract version of click the button and perform an action. (OnButtonClicked())
qt QtUdpSocket相关推荐
- QT 中QTimer 和 startTimer()的区别
最需要注意一点 请注意,QTimer的准确性取决于底层操作系统和硬件.timerType参数允许您自定义计时器的准确性.有关不同计时器类型的信息,请参见Qt::TimerType.大多数平台支持20毫 ...
- QT中使用rubberband橡皮筋等方法进行选中多个物体
文章目录 功能介绍 代码介绍 myitem.h/cpp 图形项 myview.h/cpp场景 主函数 结果展示 代码下载 参考 功能介绍 点击左键.按 Shift 键可以单选,按下 Ctrl 可进行多 ...
- Electron、QT和JAVA PC桌面开发技术比较
近几年PC桌面开发越来越多的被Electron,QT和Java技术占领.下面简单比较一下它们的优劣. Electron,势是开发用时快,社区轮子多,整合一下就能用.缺点是打包大,js计算弱. Java ...
- Qt实现 指针式时钟+动态时钟 (详细注释)
先上效果图: 点击运行后首先是一个指针式时钟窗口,点击Digital Clock->可以跳转到数字时钟窗口,再点击Move Clock->可以还原为指针式时钟窗口 关于整个程序的讲解都在代 ...
- 如何保证Qt状态机的最佳性能
如何保证Qt状态机的最佳性能 How to ensure the best Qt state machine performance 如果您使用Qt进行应用程序开发,并且使用状态机,那么很可能您正在使 ...
- qt mysql now()_Qt + mysql 運用 (項目一)
自己整合了一些資料方便以后查看,另外參考了一些資料嘗試做了個學生管理系統 以下資料若有錯誤或有侵權的地方,請前輩們指正,謝謝! 在Qt項目中右鍵執行qmake,之后在運行. 另外一種方法是在MVS20 ...
- ubuntu kylin 18.04 安装 Qt Creator 5.11
首先,去官网(https://download.qt.io/official_releases/qt/ )下载Qt Creator的安装包. 我下载的是5.11.1版本文件:qt-opensource ...
- Qt msgBox 快捷版
使用 1 int iRet = msgBox(pos, tr("警告") 2 , tr("确定要删除当前选中的行吗?") 3 , tr("确定&quo ...
- c++ Qt向PHP接口POST文件流
Qt调用PHP写的接口,向其传递图片文件,并保存在服务器. 二进制文件无法直接传递,Qt采用Base64进行编码发送,PHP解码保存为文件. 注意:PHP收到数据之后会将POST过来的数据中的加号(+ ...
最新文章
- [NC19798]区间权值
- 开源250FPS的人脸106特征点,3.3M模型
- 安装Docker:解决container-selinux = 2.9问题
- redis 源码安装
- ExecutorService-10个要诀和技巧
- mysql sql 检测磁盘_MySQL 数据库磁盘占用情况查询
- Linux中断不能进行任务调度,关中断是否禁止任务调度?关中断能作为互斥吗?...
- java后端项目怎么实现图片预览_项目经验不重样!3个基于 SpringBoot 的图片识别处理系统送给你!...
- linux下把 python 程序运行的输出结果记录到 log 文件中
- mciSendCommand对本地音乐的播放
- Ubuntu16.04安装bugzilla
- [JAVA冷知识]什么是逆变(contravariant)与协变(covariant)?数组是否支持协变逆变?泛型呢?
- 泰克TDS1000B示波器使用说明
- nagstamon--Nagios的即时桌面报警提示监控器
- 20170604第四讲
- 百度网盘分享——电子专业学习视频教程
- halcon像素统计_Halcon学习(27-1)halcon测量技术:亚像素,亚像素精度
- 大智精英汇:赤裸裸的解刨创业的思路
- 记录一次阿里云flink生产故障
- ERROR 1067 (42000): Invalid default value for ‘createtime‘
热门文章
- 第10届蓝桥杯B组F题《特别的数》
- 二级列表ExpandableListView的CheckBox使用
- Appid + appSecret + code 到微信方服务器 获取 session_key openid 并授权登录
- css3——max-height 和 min-height
- openwrt旁路由的设置
- 关于恢复RAID数据的数据恢复软件推荐
- 电子元器件贸易行业仓库管理难?全流程条码管理轻松解决
- 什么是自动化测试框架?盘点非常好用的10款自动化测试框架。
- HTTP状态码@蓝神
- java什么都听过_【Java】程序员最大的悲哀是什么?