国产亚洲精品福利在线无卡一,国产精久久一区二区三区,亚洲精品无码国模,精品久久久久久无码专区不卡

當(dāng)前位置: 首頁 > news >正文

電信100m光纖做網(wǎng)站windows優(yōu)化軟件

電信100m光纖做網(wǎng)站,windows優(yōu)化軟件,邢臺哪里可以做網(wǎng)站,美國打不開國內(nèi)網(wǎng)站推薦一個不錯的人工智能學(xué)習(xí)網(wǎng)站,通俗易懂,內(nèi)容全面,作為入門科普和學(xué)習(xí)提升都不錯,分享一下給大家:前言https://www.captainbed.cn/ai 一.UDP通信 1.QT中實現(xiàn)UDP通信主要用到了以下類:QUdpSocket、QHost…

推薦一個不錯的人工智能學(xué)習(xí)網(wǎng)站,通俗易懂,內(nèi)容全面,作為入門科普和學(xué)習(xí)提升都不錯,分享一下給大家:前言icon-default.png?t=N7T8https://www.captainbed.cn/ai

一.UDP通信

1.QT中實現(xiàn)UDP通信主要用到了以下類:QUdpSocket、QHostAddress;

2.UdpServer是服務(wù)器端,用于監(jiān)聽客戶端發(fā)送的消息并回復(fù)同樣的消息;

??UdpClient是客戶端,用于向服務(wù)器發(fā)送一條消息,并等待來自服務(wù)器的回復(fù);

3.UDP與TCP的區(qū)別

UDP像寫信,只要知道地址就可以發(fā)

TCP像打電話,只有兩人同時在線才能通信

4.UDP多播組播

二.示例代碼

本示例代碼實現(xiàn)功能為本地管理的組播收發(fā)功能。

1.mainwindow.h

#ifndef MAINWINDOW_H

#define MAINWINDOW_H

#include <QMainWindow>

#include ???<QUdpSocket>

#include ???<QLabel>

namespace Ui {

class MainWindow;

}

class MainWindow : public QMainWindow

{

????Q_OBJECT

private:

????QLabel ?*LabSocketState;

????QUdpSocket ?*udpSocket;//用于與連接的客戶端通訊的QTcpSocket

????QHostAddress ???groupAddress;//組播地址

????QString getLocalIP();//獲取本機(jī)IP地址

public:

????explicit MainWindow(QWidget *parent = 0);

????~MainWindow();

private slots:

//自定義槽函數(shù)

????void ???onSocketStateChange(QAbstractSocket::SocketState socketState);

????void ???onSocketReadyRead();//讀取socket傳入的數(shù)據(jù)

????

????void on_actStart_triggered();

????void on_actStop_triggered();

????void on_actClear_triggered();

????void on_actHostInfo_triggered();

????void on_btnMulticast_clicked();

private:

????Ui::MainWindow *ui;

};

#endif // MAINWINDOW_H

2.mainwindow.cpp

#include "mainwindow.h"

#include "ui_mainwindow.h"

#include ???<QtNetwork>

QString MainWindow::getLocalIP()

{

????QString hostName=QHostInfo::localHostName();//本地主機(jī)名

????QHostInfo ??hostInfo=QHostInfo::fromName(hostName);

????QString ??localIP="";

????QList<QHostAddress> addList=hostInfo.addresses();//

????if (!addList.isEmpty())

????for (int i=0;i<addList.count();i++)

????{

????????QHostAddress aHost=addList.at(i);

????????if (QAbstractSocket::IPv4Protocol==aHost.protocol())

????????{

????????????localIP=aHost.toString();

????????????break;

????????}

????}

????return localIP;

}

MainWindow::MainWindow(QWidget *parent) :

????QMainWindow(parent),

????ui(new Ui::MainWindow)

{

????ui->setupUi(this);

????LabSocketState=new QLabel("Socket狀態(tài):");//

????LabSocketState->setMinimumWidth(200);

????ui->statusBar->addWidget(LabSocketState);

????QString localIP=getLocalIP();//本地主機(jī)名

????this->setWindowTitle(this->windowTitle()+"----本機(jī)IP:"+localIP);

????udpSocket=new QUdpSocket(this);//用于與連接的客戶端通訊的QTcpSocket

????udpSocket->setSocketOption(QAbstractSocket::MulticastTtlOption,1);

????connect(udpSocket,SIGNAL(stateChanged(QAbstractSocket::SocketState)),

????????????this,SLOT(onSocketStateChange(QAbstractSocket::SocketState)));

????onSocketStateChange(udpSocket->state());

????connect(udpSocket,SIGNAL(readyRead()),

????????????this,SLOT(onSocketReadyRead()));

}

MainWindow::~MainWindow()

{

????udpSocket->abort();

????delete udpSocket;

????delete ui;

}

void MainWindow::onSocketStateChange(QAbstractSocket::SocketState socketState)

{

????switch(socketState)

????{

????case QAbstractSocket::UnconnectedState:

????????LabSocketState->setText("scoket狀態(tài):UnconnectedState");

????????break;

????case QAbstractSocket::HostLookupState:

????????LabSocketState->setText("scoket狀態(tài):HostLookupState");

????????break;

????case QAbstractSocket::ConnectingState:

????????LabSocketState->setText("scoket狀態(tài):ConnectingState");

????????break;

????case QAbstractSocket::ConnectedState:

????????LabSocketState->setText("scoket狀態(tài):ConnectedState");

????????break;

????case QAbstractSocket::BoundState:

????????LabSocketState->setText("scoket狀態(tài):BoundState");

????????break;

????case QAbstractSocket::ClosingState:

????????LabSocketState->setText("scoket狀態(tài):ClosingState");

????????break;

????case QAbstractSocket::ListeningState:

????????LabSocketState->setText("scoket狀態(tài):ListeningState");

????}

}

void MainWindow::onSocketReadyRead()

{//讀取數(shù)據(jù)報

????while(udpSocket->hasPendingDatagrams())

????{

????????QByteArray ??datagram;

????????datagram.resize(udpSocket->pendingDatagramSize());

????????QHostAddress ???peerAddr;

????????quint16 peerPort;

????????udpSocket->readDatagram(datagram.data(),datagram.size(),&peerAddr,&peerPort);

????????QString str=datagram.data();

????????QString peer="[From "+peerAddr.toString()+":"+QString::number(peerPort)+"] ";

????????ui->plainTextEdit->appendPlainText(peer+str);

????}

}

void MainWindow::on_actStart_triggered()

{//加入組播

????QString ????IP=ui->comboIP->currentText();

????groupAddress=QHostAddress(IP);//多播組地址

????quint16 ????groupPort=ui->spinPort->value();//端口

????if (udpSocket->bind(QHostAddress::AnyIPv4, groupPort, QUdpSocket::ShareAddress))//先綁定端口

????{

????????udpSocket->joinMulticastGroup(groupAddress); //加入多播組

????????ui->plainTextEdit->appendPlainText("**加入組播成功");

????????ui->plainTextEdit->appendPlainText("**組播地址IP:"+IP);

????????ui->plainTextEdit->appendPlainText("**綁定端口:"+QString::number(groupPort));

????????ui->actStart->setEnabled(false);

????????ui->actStop->setEnabled(true);

????????ui->comboIP->setEnabled(false);

????}

????else

????????ui->plainTextEdit->appendPlainText("**綁定端口失敗");

}

void MainWindow::on_actStop_triggered()

{//退出組播

????udpSocket->leaveMulticastGroup(groupAddress);//退出組播

????udpSocket->abort(); //解除綁定

????ui->actStart->setEnabled(true);

????ui->actStop->setEnabled(false);

????ui->comboIP->setEnabled(true);

????ui->plainTextEdit->appendPlainText("**已退出組播,解除端口綁定");

}

void MainWindow::on_actClear_triggered()

{

????ui->plainTextEdit->clear();

}

void MainWindow::on_actHostInfo_triggered()

{

????QString hostName=QHostInfo::localHostName();//本地主機(jī)名

????ui->plainTextEdit->appendPlainText("本機(jī)主機(jī)名:"+hostName+"\n");

????QHostInfo ??hostInfo=QHostInfo::fromName(hostName);

????QList<QHostAddress> addList=hostInfo.addresses();//

????if (!addList.isEmpty())

????for (int i=0;i<addList.count();i++)

????{

????????QHostAddress aHost=addList.at(i);

????????if (QAbstractSocket::IPv4Protocol==aHost.protocol())

????????{

????????????QString IP=aHost.toString();

????????????ui->plainTextEdit->appendPlainText("本機(jī)IP地址:"+aHost.toString());

????????????if (ui->comboIP->findText(IP)<0)

????????????????ui->comboIP->addItem(IP);

????????}

????}

}

void MainWindow::on_btnMulticast_clicked()

{//發(fā)送組播消息

????quint16 ????groupPort=ui->spinPort->value();

????QString ?msg=ui->editMsg->text();

????QByteArray ?datagram=msg.toUtf8();

????udpSocket->writeDatagram(datagram,groupAddress,groupPort);

????ui->plainTextEdit->appendPlainText("[multicst] "+msg);

????ui->editMsg->clear();

????ui->editMsg->setFocus();

}

三.測試結(jié)果

  1. 初始狀態(tài)

2.組播通訊結(jié)果

http://m.aloenet.com.cn/news/34114.html

相關(guān)文章:

  • 隨州網(wǎng)站建設(shè)網(wǎng)站設(shè)計與制作教程
  • 中國制造網(wǎng) 做網(wǎng)站費(fèi)用網(wǎng)站測試的內(nèi)容有哪些
  • 自己做的網(wǎng)站百度收索不到友鏈互換平臺推薦
  • 怎么做送餐網(wǎng)站做網(wǎng)絡(luò)推廣的網(wǎng)站有哪些
  • 門頭溝住房和城鄉(xiāng)建設(shè)委員會官網(wǎng)站他達(dá)那非片能延時多久
  • 做的網(wǎng)站侵犯美的商標(biāo)賠償多少錢廣州網(wǎng)絡(luò)推廣公司
  • 網(wǎng)站天天做收錄有效果嗎google中文搜索引擎入口
  • 杭州醫(yī)療器械網(wǎng)站制作app開發(fā)價格表
  • 合肥網(wǎng)站建設(shè)工作室企業(yè)qq多少錢一年
  • 貴州建設(shè)廳監(jiān)理協(xié)會網(wǎng)站汕頭網(wǎng)站設(shè)計公司
  • 怎么做中英文版網(wǎng)站國內(nèi)搜索引擎排名
  • 網(wǎng)站內(nèi)容及實現(xiàn)方式qq代刷網(wǎng)站推廣
  • 怎么描述網(wǎng)站主頁做的好關(guān)鍵詞排名的工具
  • 廣州網(wǎng)站 制作信科便宜制作網(wǎng)頁的基本步驟
  • 濰坊網(wǎng)站建設(shè)價格百度云搜索入口
  • wordpress get_the_post_thumbnail石家莊百度搜索優(yōu)化
  • 網(wǎng)站開發(fā)上線流程圖歐美網(wǎng)站建設(shè)公司
  • 英文網(wǎng)站模板源代碼免費(fèi)源碼下載網(wǎng)站
  • 紅色好看的網(wǎng)站免費(fèi)外鏈網(wǎng)站seo發(fā)布
  • 深圳網(wǎng)站建設(shè)軟件開發(fā)公司小程序開發(fā)平臺有哪些
  • wordpress xmlrpcseo崗位有哪些
  • 建筑人才網(wǎng)招聘官網(wǎng)首頁如何進(jìn)行網(wǎng)站性能優(yōu)化
  • 最好科技廣州網(wǎng)站建設(shè)seo排名工具提升流量
  • 企業(yè)網(wǎng)站目的成都網(wǎng)站建設(shè)公司排名
  • 網(wǎng)站建設(shè)中模板代碼seo快速排名優(yōu)化方法
  • 給期貨交易類做網(wǎng)站違法嗎濰坊關(guān)鍵詞優(yōu)化排名
  • php網(wǎng)站開發(fā)文檔模板關(guān)鍵詞搜索優(yōu)化公司
  • 常德舉報網(wǎng)站seo在線工具
  • wordpress部分文字管理員可見百度seo推廣首選帝搜軟件
  • 免費(fèi)商城系統(tǒng)下載福建網(wǎng)絡(luò)seo關(guān)鍵詞優(yōu)化教程