亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > C > 正文

QT網絡編程UDP下C/S架構廣播通信(實例講解)

2020-01-26 13:59:56
字體:
來源:轉載
供稿:網友

QT有封裝好的UDP協議的類,QUdpSocket,里面有我們想要的函數接口。感興趣的話,可以看看。

先搞服務端吧,寫一個子類,繼承QDialog類,起名為UdpServer類。頭文件要引用我們上邊說的QUdpSocket這個類,還有我們想要的布局的類。

#ifndef UDPSERVER_H#define UDPSERVER_H#include <QDialog>#include <QLabel>#include <QLineEdit>#include <QPushButton>#include <QVBoxLayout>#include <QtNetwork/QUdpSocket>#include <QtNetwork/QHostAddress>#include <QTimer>class UdpServer : public QDialog{ Q_OBJECTpublic: UdpServer(QWidget *parent = 0,Qt::WindowFlags f= 0); ~UdpServer();private: QLabel * TimerLabel; QLineEdit * TextLineEdit; QPushButton* StartBtn; QVBoxLayout * mainLayout; public slots: void StartBtnClicked(); void timeout(); private: int port; bool isStarted; QUdpSocket * udpSocket; QTimer *timer;};#endif // UDPSERVER_H

在.cpp文件里,我們先是把界面顯示出來,然后用udp的writedategram把想要傳的寫進去。

#include "udpserver.h"UdpServer::UdpServer(QWidget *parent,Qt::WindowFlags f) : QDialog(parent,f){ setWindowTitle(tr("UDP SERVER")); TimerLabel = new QLabel(tr("show time:"),this); TextLineEdit = new QLineEdit(this); StartBtn = new QPushButton(tr("start"),this); mainLayout = new QVBoxLayout(this); mainLayout-> addWidget(TimerLabel); mainLayout-> addWidget(TextLineEdit); mainLayout-> addWidget(StartBtn); connect(StartBtn,SIGNAL(clicked()),this,SLOT(StartBtnClicked())); port = 5555; isStarted = false; udpSocket = new QUdpSocket(this); timer = new QTimer(this); connect(timer,SIGNAL(timeout()),this,SLOT(timeout()));}UdpServer::~UdpServer(){}void UdpServer::StartBtnClicked(){ if(!isStarted) {  StartBtn->setText(tr("STOP"));  timer->start(1000);  isStarted = true; } else {  StartBtn->setText(tr("BEGIN"));  isStarted = false;  timer->stop(); }}void UdpServer::timeout(){ QString msg = TextLineEdit->text(); int length=0; if(msg=="") {  return; } if((length=udpSocket->writeDatagram(msg.toLatin1(),msg.length(),QHostAddress::Broadcast,port))!=msg.length()) {  qDebug() << msg.toLatin1();  return; }}

我這里用qDebug把要傳的東西打印出來,進行測試,看看是否傳過去了。

客戶端:

#ifndef UDPCLIENT_H#define UDPCLIENT_H#include <QDialog>#include <QVBoxLayout>#include <QTextEdit>#include <QPushButton>#include <QtNetwork/QUdpSocket> class UdpClient : public QDialog{ Q_OBJECT public: UdpClient(QWidget *parent = 0); ~UdpClient(); private: QTextEdit* ReceiceTextEdit; QPushButton* CloseBtn; QVBoxLayout* mainLayout; public slots: void CloseBtnClicked(); void dataReceived(); private: int port; QUdpSocket* udpSocket;};#endif // UDPCLIENT_H

客戶端很簡單,怎么實現布局,我就不多說了,主要是dataReceive函數。

#include "udpclient.h"#include <QMessageBox>#include <QHostAddress>UdpClient::UdpClient(QWidget *parent) :QDialog(parent){ setWindowTitle("UDP CLIENT"); ReceiceTextEdit = new QTextEdit(this); CloseBtn = new QPushButton(tr("Close"),this); mainLayout = new QVBoxLayout(this); mainLayout->addWidget(ReceiceTextEdit); mainLayout->addWidget(CloseBtn); connect(CloseBtn,SIGNAL(clicked()),this,SLOT(CloseBtnClicked())); port =5555; udpSocket = new QUdpSocket(this); bool result = udpSocket->bind(port); if(!result) {  QMessageBox::information(this,tr("ERROR"),tr("connect error"));  return; } connect(udpSocket,SIGNAL(readyRead()),this,SLOT(dataReceived()));} UdpClient:: ~UdpClient(){}void UdpClient::CloseBtnClicked(){ close();}void UdpClient::dataReceived(){ while(udpSocket->hasPendingDatagrams()) {  QByteArray datagram;  datagram.resize(udpSocket->pendingDatagramSize());  udpSocket->readDatagram(datagram.data(),datagram.size());  QString msg=datagram.data();  ReceiceTextEdit->insertPlainText(msg); }}

最后顯示一下界面,服務端發送hello。

客戶端收到的:

不停的在打印hello。直到點擊關閉,或者服務端停止。

以上這篇QT網絡編程UDP下C/S架構廣播通信(實例講解)就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持武林網。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产专区精品视频| 国产成人小视频在线观看| 欧美中文在线观看| 欧美在线亚洲在线| 国产亚洲欧美视频| 亚洲免费视频一区二区| 日韩免费看的电影电视剧大全| 欧美精品久久久久久久久| 亚洲午夜久久久久久久| 亚洲激情 国产| 日韩欧美在线观看| 日韩电视剧在线观看免费网站| 久久久久久com| 亚洲精品视频中文字幕| 国产精品久久久久久久久久久新郎| 亚洲欧美三级在线| 日韩中文字幕视频在线观看| 国产婷婷97碰碰久久人人蜜臀| 在线视频欧美日韩精品| 久久久久久中文| 欧美肥老太性生活视频| 最近2019中文字幕大全第二页| 中文字幕亚洲一区二区三区五十路| 国产一区二区视频在线观看| 亚洲精品日韩欧美| 国产精品视频白浆免费视频| 久久久最新网址| 亚洲精品福利资源站| 97国产真实伦对白精彩视频8| 欧美国产精品日韩| 7m第一福利500精品视频| 久久久久久午夜| 亚洲午夜未满十八勿入免费观看全集| 亚洲综合中文字幕在线观看| 国产ts人妖一区二区三区| 久久精品成人欧美大片古装| 欧美激情aaaa| 国内成人精品视频| 亚洲国产精品va在线看黑人动漫| 精品福利樱桃av导航| 日韩精品免费在线视频观看| 97国产真实伦对白精彩视频8| 欧美成人免费观看| 亚洲综合av影视| 日韩中文理论片| 日韩av免费在线播放| 日韩av一区在线观看| 欧美一区二粉嫩精品国产一线天| 国产成人激情视频| 欧美在线视频播放| 成人精品视频在线| 国产一区二区丝袜高跟鞋图片| 国产午夜精品全部视频在线播放| 日韩在线视频二区| 日韩中文字幕免费视频| 伊人久久综合97精品| 91精品国产一区| 亚洲成人网在线| 国产成人欧美在线观看| 日韩欧美视频一区二区三区| 神马久久桃色视频| 亚洲福利在线观看| 欧美激情va永久在线播放| 国产男女猛烈无遮挡91| 国产脚交av在线一区二区| 精品国产依人香蕉在线精品| 亚洲精品美女在线| 亚洲成人免费在线视频| 国产精品福利无圣光在线一区| 欧美午夜久久久| 8050国产精品久久久久久| 亚洲精品在线视频| 国产精品一久久香蕉国产线看观看| 亚洲影视中文字幕| 亚洲男人天堂视频| 久久精品99国产精品酒店日本| 中文字幕在线视频日韩| 国产精品第100页| 中文字幕欧美视频在线| 欧美日韩加勒比精品一区| 欧美日韩美女在线| 久久久亚洲精品视频| 久久久久中文字幕2018| 亚洲伊人一本大道中文字幕| 久久亚洲精品一区二区| 亚洲美女中文字幕| 亚洲aa中文字幕| 日韩在线观看免费av| 亚洲欧美在线第一页| 国产精品日韩精品| 成人亲热视频网站| 欧美在线观看www| 黑人狂躁日本妞一区二区三区| 亚洲电影免费观看高清完整版在线观看| 91精品国产高清自在线看超| 亚洲天堂av高清| 亚洲女在线观看| 美女久久久久久久久久久| 亚洲精品免费在线视频| 欧美一级电影久久| 日韩免费看的电影电视剧大全| 欧美风情在线观看| 日韩免费观看网站| 日本一区二区不卡| 国产日韩欧美视频| 中文字幕欧美日韩va免费视频| 中文字幕在线国产精品| 日韩的一区二区| 91深夜福利视频| 欧美极品少妇xxxxⅹ免费视频| 91美女福利视频高清| 成人黄色免费网站在线观看| 欧美性猛交xxxx免费看久久久| 亚洲美女视频网| 国产精品444| 亚洲色图在线观看| 日韩大片免费观看视频播放| 一区二区三区视频在线| 精品国产91久久久久久老师| 亚洲国产高清自拍| 蜜月aⅴ免费一区二区三区| 精品福利免费观看| 日韩在线欧美在线| 日韩精品在线免费观看| 人人做人人澡人人爽欧美| 亚洲人成电影网站| 国产精品老女人视频| 欧美日韩不卡合集视频| 久久久久久欧美| 成人黄色av播放免费| 国产精品久久久久久久久久99| 亚洲第一区第二区| 成人在线视频福利| 中文字幕综合一区| 日韩欧美视频一区二区三区| 国产精品对白刺激| 日韩免费黄色av| 狠狠爱在线视频一区| 亚洲美女av在线播放| 国产精品96久久久久久又黄又硬| 国产精品444| y97精品国产97久久久久久| 久久久中文字幕| 九九精品在线播放| 色噜噜国产精品视频一区二区| 日日狠狠久久偷偷四色综合免费| 久久国产精品久久国产精品| 久久久精品久久久久| 欧美日韩久久久久| 成人福利网站在线观看11| 国产精品综合网站| 麻豆成人在线看| 亚洲欧洲一区二区三区在线观看| 在线观看精品自拍私拍| 欧美巨乳在线观看| 国产精品一区二区久久精品| 免费97视频在线精品国自产拍| 国产一区二区美女视频| 欧美午夜精品久久久久久人妖| 中文在线资源观看视频网站免费不卡| 欧美一区二区三区精品电影| 成人网中文字幕| 最近中文字幕2019免费| 国产精品一区二区av影院萌芽|