前幾天做專案,需要裝置之間進行通訊。剛開始選用的是tcp進行通訊,結果發現tcp如果用自己封裝的類的話,粘包問題是很難解決的(可以選用第三方封裝好的庫)。最後選用udp進行通訊。學過的因該都知道,udp是一種部不可靠的資料報服務,在測試中發現,如果在網路狀態可靠(自己搭建的區域網)的情況下,udp通訊是沒有任何問題的,幾乎不會出現丟包的情況。
以下是qt udp通訊程式的示例,包括兩個檔案,udpcomm.h和udpcomm.cpp,需要udp通訊的話,直接加入兩個檔案即可。
udpcomm.h
#ifndef udpcomm_h
#define udpcomm_h
#include#include#include #include"address.h"
class udpcomm:public qobject
;#endif // udpcomm_h
udpcomm.cpp
#include "udpcomm.h"
//建構函式中進行己方埠的繫結
udpcomm::udpcomm(qobject *parent) : qobject(parent)
//資訊,接收方的位址和埠號
void udpcomm::senddata(qbytearray msg, qhostaddress address, quint16 port)
void udpcomm::recive()
}
在上述**中,如果要監聽udp通訊傳送訊息,只需要建立建立槽函式,然後和newmessage訊號之間建立關聯即可。 WinSock TCP通訊程式示例
參考文獻 楊傳棟,張煥遠.windows網路程式設計基礎教程 m 清華大學出版社,2015.p114 伺服器端程式 stdafx.h 標準系統包含檔案的包含檔案,或是經常使用但不常更改的 特定於專案的包含檔案 pragma once include targetver.h include inclu...
Socket通訊示例
一 最簡例程實現socket網路傳輸 伺服器端 比客戶端先執行 vi socket server.c 1 include 2 include 3 include 4 include 5 include 6 include 7 include 8 include 9 include 10 includ...
NIO通訊示例
讀者可以將 拷貝到編譯器上跑一跑,如果看了注釋還有不懂的地方,可以參考 nio基礎 一 之buffer nio基礎 二 之channel nio基礎 三 之selector 第三篇尤為重要對看懂大體框架有很大意義。public class const 類說明 nio通訊客戶端 public clas...