samples目錄下面為自帶的DEMO
發現有很多朋友不知道如何開始DIOCP,下面是DEMO的簡單說明,希望對大家有用
C#\Simple
用C#寫的一個簡單的回傳測試,服務端開啟ECHO伺服器即可
samples\ECHO
IOCP回射測試,在服務端收到資料後立即發送回用戶端,
可以從這個DEMO看出如何在服務端接收資料,傳回資料。
samples\iocpTask
iocpTask示範DEMO,異步任務執行DEMO,
可以在該DEMO中學到,如何投遞任務讓主線程去執行(通路UI最好在主線程通路)。
可以學到如果注冊信号任務,如何觸發信号任何,如何反注冊信号。
信号任務可以在一個位置進行注冊,在子線程中通過信号進行觸發,可以有效的進行解耦你的代碼。
更多的功能可以使用QDAC3中的QWorkers
samples\qdac3-source
qdac3項目源碼, 優秀的開源項目,你可以更新到qdac項目中去更新最新版,
一些DEMO中有使用到。
samples\safeLogger
SafeLogger的使用DEMO,
可以在該DEMO中學習到如何使用SafeLogger将日志顯示到MEMO,
如何使用SafeLogger将日志記錄到檔案。
samples\simple
最簡單的DIOCP使用例子
用戶端采用阻塞模式,發送資料到服務端,然後服務端自己傳回,用戶端等待接收資料.
=================================================================================
samples\socket-Coder
編碼器方式的DEMO,編碼器模式的存在可以讓大家在使用DEMO的時候直接傳遞對象,而不用你去處理粘包問題,
編碼器模式在解碼成功後将接收到的對象投遞到iocpTask/qworkers的線程中去執行,這樣不會阻塞diocp的通信線程,即使在處理複雜的業務邏輯,也不影響到資料的接收和發送。
samples\socket-Coder\diocpCoders
常用的一些編碼和解碼器,
JsonStream: 包含一個Json和一個Stream
TStream : 通用簡單的TStream對象,頭标記 + CRC + 資料長度 + 資料
TMsgPackCoder: msgpack對象。使用Qmsgpack進行解析
推薦搭建使用TStream的編碼和解碼模式,因為很多對象都能序列化到流和從流中還原。
例如 msgpack -> TStream -> diocp -> TStream ->msgpack
samples\socket-Coder\StreamCoder
Stream編碼器模式例子。
可以在該DEMO中學習到如果直接發送一個TStream對象,如何在服務端中接收到到這個對象,如果将一個Stream對象推送給用戶端。
可以在該DEMO學習到iocpCoderClient(用戶端iocp)的使用。
用戶端有阻塞模式(RawTcpClient)和異步接受(Client)模式。
samples\socket-Coder\DataModuleDEMO-Andriod
手機Andriod用戶端與diocp伺服器交換資料的例子
可以學習到如何在andriod中請求diocp執行sql語句傳回一個TClientDataSet的資料,并在手機上進行顯示
samples\socket-Coder\DataModuleDEMO
三層資料示範
可以學習到如何在用戶端中請求diocp執行sql語句傳回一個TClientDataSet的資料,并在用戶端進行顯示
samples\socket-Coder\DataModuleDEMO-SimpleMsgPack
使用simpleMsgPack代替QMsgPack,可以在D7中使用
samples\socket-Coder\DIOCPFileSERVER
示範DIOCP如何作為檔案伺服器使用
可以學習到如果分塊上傳檔案和下載下傳檔案