QT之網路程式設計錯誤總結

2021-07-04 02:54:43 字數 919 閱讀 4248

一、

qobject::connect: cannot queue arguments of type 'qabstractsocket::socketerror'

(make sure 'qabstractsocket::socketerror' is registered using qregistermetatype().)

錯誤描述:在qthread內將qtcpsocket物件訊號(connected、error、statechangeed)與槽函式連線報資料型別未註冊。

解決方法:將預設connect的連線方式改為qt::directconnection,就不需要型別資訊。

qt訊號與槽的連線方式:   

qt::autoconnection表示系統自動選擇相應的連線方式,如果訊號與槽在同一執行緒,就採用qt::directconnection,如果訊號與槽不在同一執行緒,將採用qt::queuedconnection的連線方式。   

qt::directconnection表示一旦訊號產生,立即執行槽函式。   

qt::queuedconnection表示訊號產生後,將傳送event給你的receiver所在的執行緒,postevent(qevent::metacall,...),slot函式會在receiver所在的執行緒的event loop中進行處理。   

qt::blockingqueuedconnection表示訊號產生後呼叫sendevent(qevent::metacall,...),在receiver所在的執行緒處理完成後才會返回,只能當sender,receiver不在同一執行緒時才可以。   

qt::uniqueconnection表示只有它不是乙個重複連線,連線才會成功。如果之前已經有了乙個鏈結(相同的訊號連線到同一物件的同乙個槽上),那麼連線將會失敗並將返回false。   

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

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

linux 網路程式設計總結 之網路程式設計函式總結

這周學習了linux網路程式設計相關的知識,現在將其總結如下 在linux系統中已經將tcp ip協議相關的東西都封裝好了,所以在入門學習網路程式設計的時候並沒有學習研究太多tcp ip協議的東西,而是學習那些已經將協議封裝好的函式和api。在linux網路程式設計中基本幾個函式如下 第乙個函式 套...

QT 學習錯誤總結

1 cannot open file 可能是沒有關掉剛剛執行的視窗 2 dose not name a type 可能是沒有包含標頭檔案 3 視窗一閃而過 4 qt登入視窗呼叫主視窗一閃而過有關問題 www.myexception.cn 發布於 2012 11 1110 07 57 瀏覽 72次 q...