天天看點

【DIOCP-DEMO說明】所有示範DEMO的簡要說明

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如何作為檔案伺服器使用

  可以學習到如果分塊上傳檔案和下載下傳檔案