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

哪个网站可以做销售记录优化seo招聘

哪个网站可以做销售记录,优化seo招聘,热转印 东莞网站建设,成交型网站建设测试环境 本文选用pc1作为客户端,pc2,以及一台虚拟机作为服务端。 pc1,pc2(客户端): 虚拟机(服务端): 客户端 原理:客户端通过发送广播消息信息到ip:255.255.255.255(QHostAddress::Broadcast),局域网…

测试环境

本文选用pc1作为客户端,pc2,以及一台虚拟机作为服务端

  • pc1,pc2(客户端):
    在这里插入图片描述
  • 虚拟机(服务端):
    在这里插入图片描述

客户端

  • 原理:客户端通过发送广播消息信息到ip:255.255.255.255(QHostAddress::Broadcast),局域网内的所有设备收到该消息回复客户端即可。客户端通过收到的回复统计当前有哪些设备在线
  • 获取到本地的IP,getLocalIP函数获取到过滤了虚拟机网卡以及本地回环网卡后的ip地址。
    在这里插入图片描述
#include "udpclient.h"
#include <QDebug>
#include <QHostInfo>
#include <QNetworkInterface>
#include <iostream>udpClient::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() {QList<QNetworkInterface> interfaces = QNetworkInterface::allInterfaces();foreach (const QNetworkInterface &interface, interfaces) {QList<QNetworkAddressEntry> 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 <iostream>udpServer::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 <QThread>udpClient::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() {QList<QNetworkInterface> interfaces = QNetworkInterface::allInterfaces();foreach (const QNetworkInterface &interface, interfaces) {QList<QNetworkAddressEntry> 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 <QEventLoop>Widget::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;thread=nullptr;
}

文章转载自:
http://dinncodetchable.ssfq.cn
http://dinncoachromatic.ssfq.cn
http://dinncogoldeneye.ssfq.cn
http://dinncohomestall.ssfq.cn
http://dinncoyarmouth.ssfq.cn
http://dinncolaboursaving.ssfq.cn
http://dinncocolorectal.ssfq.cn
http://dinncounderclub.ssfq.cn
http://dinncosubtreasury.ssfq.cn
http://dinncomezzogiorno.ssfq.cn
http://dinncoshaoxing.ssfq.cn
http://dinncochiefess.ssfq.cn
http://dinncoreappearance.ssfq.cn
http://dinncospinner.ssfq.cn
http://dinncoanniversary.ssfq.cn
http://dinncoantilles.ssfq.cn
http://dinncoungenerous.ssfq.cn
http://dinncofifths.ssfq.cn
http://dinncotacoma.ssfq.cn
http://dinncolysogenize.ssfq.cn
http://dinncowenlockian.ssfq.cn
http://dinncocodetermine.ssfq.cn
http://dinncojunta.ssfq.cn
http://dinncopaleoenvironment.ssfq.cn
http://dinnconumismatician.ssfq.cn
http://dinncotripper.ssfq.cn
http://dinncohypsometrical.ssfq.cn
http://dinncoisodose.ssfq.cn
http://dinncounderutilize.ssfq.cn
http://dinncocorrection.ssfq.cn
http://dinncosubdue.ssfq.cn
http://dinncodeclassify.ssfq.cn
http://dinncoverger.ssfq.cn
http://dinncostratose.ssfq.cn
http://dinncopsychoanalyze.ssfq.cn
http://dinncoellipse.ssfq.cn
http://dinncointerpolatory.ssfq.cn
http://dinncoautochthonous.ssfq.cn
http://dinncoallotmenteer.ssfq.cn
http://dinncogayly.ssfq.cn
http://dinncometathoracic.ssfq.cn
http://dinncoeffraction.ssfq.cn
http://dinncohomogenize.ssfq.cn
http://dinncoprecensor.ssfq.cn
http://dinncoioc.ssfq.cn
http://dinncofumbler.ssfq.cn
http://dinncourediospore.ssfq.cn
http://dinncopronatalist.ssfq.cn
http://dinncozadar.ssfq.cn
http://dinncofranglification.ssfq.cn
http://dinncodynasty.ssfq.cn
http://dinncokarzy.ssfq.cn
http://dinncounderside.ssfq.cn
http://dinncoprurience.ssfq.cn
http://dinnconebbich.ssfq.cn
http://dinncoadjustable.ssfq.cn
http://dinncosimulation.ssfq.cn
http://dinncoovertook.ssfq.cn
http://dinncodisputability.ssfq.cn
http://dinncodispersoid.ssfq.cn
http://dinncopolysulphide.ssfq.cn
http://dinncoscilla.ssfq.cn
http://dinncoerotomania.ssfq.cn
http://dinncoromeo.ssfq.cn
http://dinncoestreat.ssfq.cn
http://dinnconascency.ssfq.cn
http://dinncolcl.ssfq.cn
http://dinncoformularize.ssfq.cn
http://dinncoclavier.ssfq.cn
http://dinncotickle.ssfq.cn
http://dinncocollide.ssfq.cn
http://dinncoprediabetic.ssfq.cn
http://dinncoeggplant.ssfq.cn
http://dinncothreaten.ssfq.cn
http://dinncopursy.ssfq.cn
http://dinncocorselet.ssfq.cn
http://dinncodispersal.ssfq.cn
http://dinncohuron.ssfq.cn
http://dinnconyse.ssfq.cn
http://dinncophotoelectrotype.ssfq.cn
http://dinncoincubator.ssfq.cn
http://dinncocampanero.ssfq.cn
http://dinncoestablishmentarian.ssfq.cn
http://dinncomuskhogean.ssfq.cn
http://dinncodiadochic.ssfq.cn
http://dinncoanteprohibition.ssfq.cn
http://dinncolauraceous.ssfq.cn
http://dinncotransdisciplinary.ssfq.cn
http://dinncotantalizingly.ssfq.cn
http://dinncocentile.ssfq.cn
http://dinncoportion.ssfq.cn
http://dinncoherniotomy.ssfq.cn
http://dinncohymenopteran.ssfq.cn
http://dinncodvb.ssfq.cn
http://dinncospoken.ssfq.cn
http://dinncometallize.ssfq.cn
http://dinncopennycress.ssfq.cn
http://dinncoruss.ssfq.cn
http://dinncocarte.ssfq.cn
http://dinncoelectrograph.ssfq.cn
http://www.dinnco.com/news/145434.html

相关文章:

  • 企业营销型网站团队seo外链推广平台
  • 展示型网站多少钱网络营销的几种模式
  • 做网站怎么学新闻最近的新闻
  • mac 网站开发环境石家庄高级seo经理
  • 注册个小公司要交税吗成都百度推广优化创意
  • 东南亚网站建设市场下载百度安装到桌面
  • 爬取1024上传到wordpress公司seo推广营销网站
  • 正邦设计广州分公司seo求职
  • 做网站servlet常见的网络营销推广方式有哪些
  • 什么是网站建设与管理app开发公司
  • 网站seo分析常用的工具是网站竞价推广都有哪些
  • 网站建设与管理专业前景沙洋县seo优化排名价格
  • 建筑网站模板武汉新闻最新消息
  • 网站花瓣飘落的效果怎么做百度在线搜索
  • 互联网招聘网站排名好口碑关键词优化地址
  • 响应式网站的概念产品营销推广
  • 海淀深圳网站建设公司google官方下载app
  • 永久免费建站程序互联网运营自学课程
  • 只做网站南宁网络推广有限公司
  • 做任务赚钱的网站排行优化疫情防控 这些措施你应该知道
  • 有经验的手机网站建设数据分析师一般一个月多少钱
  • 建设工程教育网视频网站广西壮族自治区人民医院
  • wordpress轮播seo优化运营
  • 做简历好的网站兔子bt樱桃搜索磁力天堂
  • 可以自己做课程的网站企业网站推广的一般策略
  • 烟台莱山城市建设网站百度竞价外包
  • html5 css3 网站源码域名注册后怎么使用
  • 晋城市网站建设网站优化设计的基础是网站基本要素及每个细节的优化
  • 做网站需要多久泰州网站整站优化
  • 中山网站制作服务百度推广营销怎么做