多線程 網(wǎng)絡(luò)傳輸
開(kāi)發(fā)環(huán)境:Delphi7.0+WinXP,沒(méi)用其他控件(除了Delphi自帶的Indy)
傳輸協(xié)議:TCP/IP
客戶端一次發(fā)送65000字節(jié)的包,服務(wù)端負(fù)責(zé)組裝并處理數(shù)據(jù)粘連。
使用ReadBuffer(),Send()函數(shù)來(lái)接收發(fā)送Buffer內(nèi)字節(jié),這樣作的目的是使程序具有更好的靈活性。你可以自定義Buffer內(nèi)那些字節(jié)的含義,例如是字符串、圖像、聲音、命令等等。
文件的多線程讀寫(xiě)采用windows內(nèi)存映像技術(shù)。
關(guān)鍵的服務(wù)器處理函數(shù)IdTCPServer1Execute(AThread: TIdPeerThread)是非線程安全的。如果使用臨界區(qū),那么多線程將在這里串行執(zhí)行,嚴(yán)重降低多線程效率。對(duì)此,我采用一個(gè)簡(jiǎn)單的辦法,具體可以看程序。
標(biāo)簽:
Delphi
WinXP
7.0
多線程
上傳時(shí)間:
2014-12-02
上傳用戶:silenthink