tcp—傳輸控制協議,提供的是面向連線、可靠的位元組流服務。當客戶和伺服器彼此交換資料前,必須先在雙方之間建立乙個tcp連線,之後才能傳輸資料。tcp提供超時重發,丟棄重複資料,檢驗資料,流量控制等功能,保證資料能從一端傳到另一端。
udp—使用者資料報協議,是乙個簡單的面向資料報的運輸層協議。udp不提供可靠性,它只是把應用程式傳給ip層的資料報傳送出去,但是並不能保證它們能到達目的地。由於udp在傳輸資料報前不用在客戶和伺服器之間建立乙個連線,且沒有超時重發等機制,故而傳輸速度很快(as3不支援udp)
傳送端
#include
qudpsocket *sender;
sender =
new qudpsocket(this);
qbytearray datagram = 「hello world!」;
//udp廣播
sender->writedatagram(datagram.
data(),datagram.size(),qhostaddress::broadcast,6665);
//udp單播
qhostaddress serveraddress = qhostaddress("10.21.11.66");
sender->writedatagram(datagram.
data(), datagram.size(),serveraddress, 6665);
// writedatagram函式原型,傳送成功返回位元組數,否則-1
//qint64 writedatagram(const char *data,qint64 size,const qhostaddress &address,quint16 port)
//qint64 writedatagram(const qbytearray &datagram,const qhostaddress &host,quint16 port)
udp接收端
#include
qudpsocket *receiver;
//訊號槽
private slots:
void readpendingdatagrams();
receiver =
new qudpsocket(this);
receiver->bind(qhostaddress::localhost, 6665);
connect(receiver, signal(readyread()),this, slot(readpendingdatagrams()));
void readpendingdatagrams()
}
tcp client端
#include
qtcpsocket *client;
char *data="hello qt!";
client = new qtcpsocket(this);
client->connecttohost(qhostaddress("10.21.11.66"), 6665);
client->write(data);
tcp server端
#include
qtcpserver *server;
qtcpsocket *clientconnection;
server = new qtcpserver();
server->listen(qhostaddress::any, 6665);
connect(server, signal(newconnection()), this, slot(acceptconnection()));
void acceptconnection()
void readclient()
Qt學習筆記 網路程式設計 UDP
qt中qudpsocket類進行收發udp資料報,該類父類是qabstractsocket。簡單地說,套接字socket ip位址 port埠號 ip指定網路中的哪乙個主機 port埠號指定主機的哪乙個應用程式 要使用udp,工程檔案中必須新增qt network 是否有資料可讀 bool qudp...
Qt程式設計 Qt學習筆記《三》
1.如果程式中使用了png以外格式的,在發布程式時就要將qt安裝目錄下plugins中的imagineformats檔案複製到發布檔案中。2.在函式宣告處快速新增函式定義可單擊函式名,按下alt enter鍵後,按下enter鍵就可以進入到函式定義部分。3.關聯槽和訊號的兩種方法 1.直接在設計器中...
學習Qt網路程式設計
qtcpsocket 詳細描述 qtcpsocket 類提供乙個tcp套接字 tcp是乙個面向連線,可靠的的通訊協議,非常適合於連續不斷的資料傳遞 qtcpsocket 是qabstractsocket類非常方便的乙個子類,讓你建立乙個tcp連線和資料流交流。注意 tcp套接字不能以qiodevic...