Qt學習筆記 網路程式設計 UDP

2021-10-23 21:00:51 字數 2247 閱讀 1906

qt中qudpsocket類進行收發udp資料報,該類父類是qabstractsocket。

簡單地說,套接字socket=ip位址+port埠號

ip指定網路中的哪乙個主機

port埠號指定主機的哪乙個應用程式

要使用udp,工程檔案中必須新增qt += network

是否有資料可讀:

bool qudpsocket::

haspendingdatagrams()

const

讀資料:

qint64 qudpsocket::

readdatagram

(char

*data, qint64 maxsize, qhostaddress *address = q_nullptr, quint16 *port = q_nullptr)

//讀資料

networkdatagram qudpsocket::

receivedatagram

(qint64 maxsize =-1

)

當前可讀資料大小

qint64 qudpsocket::

pendingdatagramsize()

const

讀資料:

qint64 qudpsocket::

writedatagram

(const

char

*data, qint64 size,

const qhostaddress &address, quint16 port)

qint64 qudpsocket::

writedatagram

(const qnetworkdatagram &datagram)

qint64 qudpsocket::

writedatagram

(const qbytearray &datagram,

const qhostaddress &host, quint16 port)

class

udp_sender

:public qwidget

;

udp_sender::

udp_sender

(qwidget *parent)

:qwidget

(parent),ui

(new ui::udp_sender)

udp_sender::

~udp_sender()

void udp_sender::

initudpsocket

(void

)void udp_sender::

senddatagram

(void

)

qhostaddress::broadcast  //特殊的廣播位址,意味著所有主機,但不是網際網路上的所有主機
class

udp_recevier

:public qwidget

;

#include

"udp_recevier.h"

#include

"ui_udp_recevier.h"

#include

udp_recevier::

udp_recevier

(qwidget *parent)

:qwidget

(parent),ui

(new ui::udp_recevier)

udp_recevier::

~udp_recevier()

void udp_recevier::

processdatagram()

}void udp_recevier::

initsocket()

結果:

網路程式設計學習筆記(三)UDP

1 不可靠的 效率高 資料報 資料打成乙個小包乙個小包地往外發 非連線。2 udp是非連線的,因此嚴格來說並不區分伺服器端和客戶端。3 udp通訊過程 udp都是通過位元組陣列進行對話的。伺服器 端 接資料 1 新建位元組陣列,用來接收對方發過來的資料 byte buf new byte 1024 ...

QT學習筆記之QT網路程式設計

tcp 傳輸控制協議,提供的是面向連線 可靠的位元組流服務。當客戶和伺服器彼此交換資料前,必須先在雙方之間建立乙個tcp連線,之後才能傳輸資料。tcp提供超時重發,丟棄重複資料,檢驗資料,流量控制等功能,保證資料能從一端傳到另一端。udp 使用者資料報協議,是乙個簡單的面向資料報的運輸層協議。udp...

學習Qt網路程式設計

qtcpsocket 詳細描述 qtcpsocket 類提供乙個tcp套接字 tcp是乙個面向連線,可靠的的通訊協議,非常適合於連續不斷的資料傳遞 qtcpsocket 是qabstractsocket類非常方便的乙個子類,讓你建立乙個tcp連線和資料流交流。注意 tcp套接字不能以qiodevic...