当前位置: 首页 > news >正文

网站设计工具更好的做网站运营推广怎么做

网站设计工具更好的做网站,运营推广怎么做,汽车4s店网站建设方案,云南网站建设公司排行测试环境 本文选用pc1作为客户端#xff0c;pc2#xff0c;以及一台虚拟机作为服务端。 pc1,pc2(客户端#xff09;: 虚拟机#xff08;服务端)#xff1a; 客户端 原理#xff1a;客户端通过发送广播消息信息到ip:255.255.255.255(QHostAddress::Broadcast),局域网…测试环境 本文选用pc1作为客户端pc2以及一台虚拟机作为服务端。 pc1,pc2(客户端: 虚拟机服务端) 客户端 原理客户端通过发送广播消息信息到ip:255.255.255.255(QHostAddress::Broadcast),局域网内的所有设备收到该消息回复客户端即可。客户端通过收到的回复统计当前有哪些设备在线。获取到本地的IPgetLocalIP函数获取到过滤了虚拟机网卡以及本地回环网卡后的ip地址。 #include udpclient.h #include QDebug #include QHostInfo #include QNetworkInterface #include iostreamudpClient::udpClient(QObject *parent) : QObject(parent) {QString localIp getLocalIP();udpSocket new QUdpSocket;udpSocket-bind(QHostAddress(localIp),2001);connect(udpSocket,QUdpSocket::readyRead,this,udpClient::processData);}QString udpClient::getLocalIP() {QListQNetworkInterface interfaces QNetworkInterface::allInterfaces();foreach (const QNetworkInterface interface, interfaces) {QListQNetworkAddressEntry entries interface.addressEntries();qDebug()name:interface.humanReadableName()endl;if(interface.humanReadableName().contains(Loopback) ||interface.humanReadableName().contains(VMware Network Adapter)){continue;}foreach (const QNetworkAddressEntry entry, entries) {if (entry.ip().protocol() QAbstractSocket::IPv4Protocol) {qDebug() Local IP Address: entry.ip().toString() endl;}}}return QString(); }udpClient::~udpClient() {if(udpSocket){delete udpSocket;} }void udpClient::sendBroadCast() {QByteArray datagram Device Discovery;udpSocket-writeDatagram(datagram,QHostAddress::Broadcast,8888); }void udpClient::processData() {while(udpSocket-hasPendingDatagrams()){QByteArray datagram;datagram.resize(udpSocket-pendingDatagramSize());QHostAddress sender;quint16 senderPort;udpSocket-readDatagram(datagram.data(), datagram.size(), sender, senderPort);qDebug() Received response from: sender.toString()port:senderPort endl;} } 服务端 #include udpserver.h #include iostreamudpServer::udpServer(QObject *parent) : QObject(parent) {udpSocket new QUdpSocket(this);udpSocket-bind(QHostAddress::Any, 8888);connect(udpSocket, QUdpSocket::readyRead, this, udpServer::processPendingDatagrams);}void udpServer::processPendingDatagrams() {while (udpSocket-hasPendingDatagrams()) {QByteArray datagram;datagram.resize(udpSocket-pendingDatagramSize());QHostAddress sender;quint16 senderPort;udpSocket-readDatagram(datagram.data(), datagram.size(), sender, senderPort);std::cout Received discovery message: datagram.data() std::endl;QByteArray response Device Found;udpSocket-writeDatagram(response, sender, senderPort);} } 输出效果 优化 对客户端增加定时器同时将客户端对象移动到一个线程中这样就可以定时轮询设备发现了。 #include udpclient.h #include QDebug #include QHostInfo #include QNetworkInterface #include iostream #include QTimer #include QThreadudpClient::udpClient(QObject *parent) : QObject(parent) {qDebug()thread id1:QThread::currentThreadId()endl; }void udpClient::createSocket() {qDebug()thread id2:QThread::currentThreadId()endl;QString localIp getLocalIP();udpSocket new QUdpSocket;udpSocket-bind(QHostAddress(localIp),2001);connect(udpSocket,QUdpSocket::readyRead,this,udpClient::processData); }QString udpClient::getLocalIP() {QListQNetworkInterface interfaces QNetworkInterface::allInterfaces();foreach (const QNetworkInterface interface, interfaces) {QListQNetworkAddressEntry entries interface.addressEntries();qDebug()name:interface.humanReadableName()endl;if(interface.humanReadableName().contains(Loopback) ||interface.humanReadableName().contains(VMware Network Adapter)){continue;}foreach (const QNetworkAddressEntry entry, entries) {if (entry.ip().protocol() QAbstractSocket::IPv4Protocol) {qDebug() Local IP Address: entry.ip().toString() endl;}}}return QString(); }udpClient::~udpClient() {if(udpSocket){delete udpSocket;} }void udpClient::sendBroadCast() {QByteArray datagram Device Discovery;udpSocket-writeDatagram(datagram,QHostAddress::Broadcast,8888);qDebug()sendBroadCast,thread id:QThread::currentThreadId()endl; }void udpClient::processData() {while(udpSocket-hasPendingDatagrams()){QByteArray datagram;datagram.resize(udpSocket-pendingDatagramSize());QHostAddress sender;quint16 senderPort;udpSocket-readDatagram(datagram.data(), datagram.size(), sender, senderPort);result.push_back(IpInfo(sender.toString(),senderPort));qDebug() Received response from: sender.toString()port:senderPort endl;} }void tcpConnect(QString ip, quint16 port) {}#include widget.h #include ui_widget.h #include QTimer #include QEventLoopWidget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget) {ui-setupUi(this);client new udpClient;connect(ui-pushButton,QPushButton::clicked,client,udpClient::sendBroadCast);thread new QThread;connect(thread,QThread::finished,client,QObject::deleteLater);connect(thread,QThread::started,client,udpClient::createSocket);client-moveToThread(thread);timer new QTimer(this);connect(timer,QTimer::timeout,client,udpClient::sendBroadCast);timer-setInterval(500);thread-start(); // QEventLoop loop; // QTimer::singleShot(500,loop,QEventLoop::quit); // loop.exec();timer-start();qDebug()thread id:QThread::currentThreadId()endl; }Widget::~Widget() {delete ui;thread-quit();thread-wait();delete thread;threadnullptr; }
http://www.hkea.cn/news/14419787/

相关文章:

  • 深圳网站seo设计网站一个人可以做吗
  • 广东网站建设系统怎么自己弄网站
  • wordpress本地安装插件长沙seo培训班
  • 如何做淘宝优惠卷网站济南百姓网免费发布信息网
  • 广东高端网站设计公司价格wordpress json 登陆
  • 免费外贸网站模板下载小程序模板库
  • 如何做百度网站肇庆网站建设咨询
  • 外贸多语言网站十大免费ppt网站在线
  • 廊坊网站关键词排名哪个网站可以做行程表
  • 调查队网站建设开通微信公众号要收费吗
  • 施工程找工程做哪个网站好做网站哪个效果好
  • 开封网站建设公司iis网站架设教程
  • 建网站代理哪个开发东莞网站制作公司
  • 网站建设实质馆陶网站建设价格
  • 网站开发公司照片重庆公司有哪些
  • 社区网站建设资金申请asp 网站开发
  • 网站建设费用贵不贵招远做网站
  • 简述网站开发的具体流程长春市科学技术局网站
  • 网站设计可以吗网站建设需要的项目
  • 合肥公司网站建设养老网站建设的意义
  • 创意互动 网站建设装修公司网站模板
  • 镇江网站排名优化公司注册教育培训机构需要什么条件
  • 那些网站可以上传自己做的视频滦平县建设局网站
  • 梧州专业网站推广网站后期培训机构全国排名
  • 俄文网站建设方案网站开发就业岗位
  • 凡科建站网页版如何做明星的个人网站
  • 网站报价单wordpress主题修改
  • 网站建设建设意见公司部门设置及职责划分
  • 抖音seo招商seo教程书籍
  • 企业型网站网址怎么开个人网站赚钱