Today’s basic job is to watch over a machine and doing basic communication.

  1. How to watch over if the machine is online?
    Basic Idea: Because we are transferring Datagrams, so use QSocket.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.

  2. 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"))
  1. 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.
  1. Always use mutex when operating on the data queue or vector,
  2. 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相关推荐

  1. QT 中QTimer 和 startTimer()的区别

    最需要注意一点 请注意,QTimer的准确性取决于底层操作系统和硬件.timerType参数允许您自定义计时器的准确性.有关不同计时器类型的信息,请参见Qt::TimerType.大多数平台支持20毫 ...

  2. QT中使用rubberband橡皮筋等方法进行选中多个物体

    文章目录 功能介绍 代码介绍 myitem.h/cpp 图形项 myview.h/cpp场景 主函数 结果展示 代码下载 参考 功能介绍 点击左键.按 Shift 键可以单选,按下 Ctrl 可进行多 ...

  3. Electron、QT和JAVA PC桌面开发技术比较

    近几年PC桌面开发越来越多的被Electron,QT和Java技术占领.下面简单比较一下它们的优劣. Electron,势是开发用时快,社区轮子多,整合一下就能用.缺点是打包大,js计算弱. Java ...

  4. Qt实现 指针式时钟+动态时钟 (详细注释)

    先上效果图: 点击运行后首先是一个指针式时钟窗口,点击Digital Clock->可以跳转到数字时钟窗口,再点击Move Clock->可以还原为指针式时钟窗口 关于整个程序的讲解都在代 ...

  5. 如何保证Qt状态机的最佳性能

    如何保证Qt状态机的最佳性能 How to ensure the best Qt state machine performance 如果您使用Qt进行应用程序开发,并且使用状态机,那么很可能您正在使 ...

  6. qt mysql now()_Qt + mysql 運用 (項目一)

    自己整合了一些資料方便以后查看,另外參考了一些資料嘗試做了個學生管理系統 以下資料若有錯誤或有侵權的地方,請前輩們指正,謝謝! 在Qt項目中右鍵執行qmake,之后在運行. 另外一種方法是在MVS20 ...

  7. ubuntu kylin 18.04 安装 Qt Creator 5.11

    首先,去官网(https://download.qt.io/official_releases/qt/ )下载Qt Creator的安装包. 我下载的是5.11.1版本文件:qt-opensource ...

  8. Qt msgBox 快捷版

    使用 1 int iRet = msgBox(pos, tr("警告") 2 , tr("确定要删除当前选中的行吗?") 3 , tr("确定&quo ...

  9. c++ Qt向PHP接口POST文件流

    Qt调用PHP写的接口,向其传递图片文件,并保存在服务器. 二进制文件无法直接传递,Qt采用Base64进行编码发送,PHP解码保存为文件. 注意:PHP收到数据之后会将POST过来的数据中的加号(+ ...

最新文章

  1. [NC19798]区间权值
  2. 开源250FPS的人脸106特征点,3.3M模型
  3. 安装Docker:解决container-selinux = 2.9问题
  4. redis 源码安装
  5. ExecutorService-10个要诀和技巧
  6. mysql sql 检测磁盘_MySQL 数据库磁盘占用情况查询
  7. Linux中断不能进行任务调度,关中断是否禁止任务调度?关中断能作为互斥吗?...
  8. java后端项目怎么实现图片预览_项目经验不重样!3个基于 SpringBoot 的图片识别处理系统送给你!...
  9. linux下把 python 程序运行的输出结果记录到 log 文件中
  10. mciSendCommand对本地音乐的播放
  11. Ubuntu16.04安装bugzilla
  12. [JAVA冷知识]什么是逆变(contravariant)与协变(covariant)?数组是否支持协变逆变?泛型呢?
  13. 泰克TDS1000B示波器使用说明
  14. nagstamon--Nagios的即时桌面报警提示监控器
  15. 20170604第四讲
  16. 百度网盘分享——电子专业学习视频教程
  17. halcon像素统计_Halcon学习(27-1)halcon测量技术:亚像素,亚像素精度
  18. 大智精英汇:赤裸裸的解刨创业的思路
  19. 记录一次阿里云flink生产故障
  20. ERROR 1067 (42000): Invalid default value for ‘createtime‘

热门文章

  1. 第10届蓝桥杯B组F题《特别的数》
  2. 二级列表ExpandableListView的CheckBox使用
  3. Appid + appSecret + code 到微信方服务器 获取 session_key openid 并授权登录
  4. css3——max-height 和 min-height
  5. openwrt旁路由的设置
  6. 关于恢复RAID数据的数据恢复软件推荐
  7. 电子元器件贸易行业仓库管理难?全流程条码管理轻松解决
  8. 什么是自动化测试框架?盘点非常好用的10款自动化测试框架。
  9. HTTP状态码@蓝神
  10. java什么都听过_【Java】程序员最大的悲哀是什么?