samples目錄下面爲自帶的DEMOsql
發現有不少朋友不知道如何開始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如何做爲文件服務器使用
能夠學習到若是分塊上傳文件和下載文件 socket