Qt之UDP的網路廣播例子

2021-06-10 01:20:57 字數 2218 閱讀 6546

udp 使用者資料報協議,是一種輕量級、無連線,不可靠,資料報的傳輸層協議。

一般用在短訊息、廣播訊息等中,本文中是用在廣播定時傳送訊息中。

注意還是要在.pro中加入 qt += network

廣播定時傳送給使用者資料:

1、udp的伺服器端

先建立乙個qudpsocket物件,再建立乙個定時器qtimer每秒傳送一次資料,

最後利用qudpsocket的writedatagram()函式來設定位址和繫結埠來傳送資料。

2、udp的客服端

建立乙個繫結好埠的qudpsocket物件,此時最重要的一句話

connect(

udpsocket

,signal

(readyread()),

this

,slot

(datareceived())); //其中datareceived是自定義的函式,接受資料函式

當qudpsocket物件每次要讀入乙個新資料的時候,就傳送訊號readyread();

再來就是編寫我們自定義的接受資料函式了,利用qudpsocket的readdatagram()函式即可獲取資料。

截圖:

服務端:

#ifndef udpserver_h

#define udpserver_h

#include class qlabel;

class qlineedit;

class qudpsocket;

class udpserver: public qdialog

;#endif // udpserver_h

#include "udpserver.h"

#include #include udpserver::udpserver(qwidget *parent)

: qdialog(parent)

void udpserver::slotstartbutton()

else

}void udpserver::timeoutdo()

}

#include "udpserver.h"

//客服端:

#ifndef udpclient_h

#define udpclient_h

#include class qtextedit;

class qudpsocket;

class udpclient: public qdialog

;#endif // udpclient_h

#include "udpclient.h"

#include #include udpclient::udpclient(qwidget *parent)

: qdialog(parent)

connect(udpsocket, signal(readyread()),

this, slot(datareceived()));

showtext = new qtextedit;

showtext->setreadonly(true);

closebutton = new qpushbutton(tr("close"));

connect(closebutton, signal(clicked()),

this, slot(slotclose()));

qvboxlayout *mainlayout = new qvboxlayout;

mainlayout->addwidget(showtext);

mainlayout->addwidget(closebutton);

setlayout(mainlayout);

setwindowtitle(tr("udp client"));

}//private slots

void udpclient::slotclose()

void udpclient::datareceived()

}

#include "udpclient.h"

QT 通過UDP廣播獲取網路中所有裝置ip位址

說明 本文是c 的qt版本例子說明,有時候需要搜尋網路中的裝置,機器,伺服器等,這就要要用到udp廣播的方式,傳送廣播命令,廣播給網路中的每乙個主機,該主機接收到廣播命令後,立刻傳送給請求端自己的裝置資訊,這裡以ip資訊為例子。思路 在每乙個裝置中部署sever端程式進行監控,client端傳送廣播...

udp的廣播應用

廣播 一點傳送,多點接收 最大位址 用來演示udp的廣播應用 from socket import 建立套接字 sockfd socket af inet,sock dgram 設定套接字可以傳送接收廣播 sockfd.setsockopt sol socket,so broadcast,1 固定接...

乙個簡單的UDP廣播例子 含C S

乙個簡單的udp廣播通訊的例子程式,含有服務端和客戶端的 服務端 include stdafx.h include include pragma comment lib,ws2 32.lib int tmain int argc,tchar argv if 2 hibyte wsadata.wver...