基本信息
源码名称:扫描局域网设备的IP地址(ipscanner)
源码大小:4.85KB
文件格式:.zip
开发语言:C/C++
更新时间:2021-10-20
   友情提示:(无需注册或充值,赞助后即可获取资源下载链接)

     嘿,亲!知识可是无价之宝呢,但咱这精心整理的资料也耗费了不少心血呀。小小地破费一下,绝对物超所值哦!如有下载和支付问题,请联系我们QQ(微信同号):813200300

本次赞助数额为: 2 元 
   源码介绍

基于udp扫描出局域网内在线设备的IP地址


QHostAddress udp_client_address;//声明一个QHostAddress对象
 unsigned short int udp_client_port = 0;//客户端端口号
 QByteArray udp_datagram;//upd client 发来的数据,里面包含内容和大小

 while( udp_server->hasPendingDatagrams() )
 {
 udp_datagram.resize( udp_server->pendingDatagramSize());

 udp_server->readDatagram(udp_datagram.data(),udp_datagram.size(), &udp_client_address, &udp_client_port);

 //比较数据是否为有效数据
 if(strcmp(udp_datagram.data(),VALID_DATA) == 0)
 {
 //注意这里的ip显示的格式是这样的,我们需要转换一下"::ffff:192.168.xxx.xxx" ==> "192.168.xxx.xxx"
 QString ip_addr_temp = udp_client_address.toString();
 QString ip_addr;
 int i = 0;
 //填充ip地址
 for(i = 7; ip_addr_temp[i] != '\0'; i   )
 {
 ip_addr[i-7] = ip_addr_temp[i];
 }
 //插入列表
 iot_dev_ip_item_add(ip_addr   QString(":")  QString().number(udp_client_port),udp_datagram.data());
 }
 //非法数据,不处理

 }