熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Delphi編程 >> 正文

如何使用Delphi設計強大的服務器程序[1]

2013-11-23 17:34:29  來源: Delphi編程 

  現在網絡的流行使得服務器程序得到了廣泛的應用那麼我們使用Delphi如何設計出強壯的服務器呢?

  有人說如果要設計服務器的話一定要使用VC來設計其實這個人說的有一定道理因為如果你要使用Delphi來設計服務器的話要想設計高效的服務器就不要使用Delphi帶來的大部分的控件(最好不要使用Delphi控件)為什麼呢?下面我會告訴大家這樣的話你全部使用API來設計服務器就同VC沒有太大的區別了

  使用Delphi來設計服務器程序具體選擇是使用窗體消息模式還是使用完成端口的模式這主要看你的用戶連接數量來決定如果你的用戶連接數量小於人的話並且處理的數據量不大的話可以使用窗體的消息模式來進行服務器的開發而如果大於這樣最好使用完成端口來開發服務器我這裡建議大家最好使用完成端口模式因為你不可能保證你的用戶數量不變化同時由於你的服務器如果運行一段時間沒有問題的話最好做成WIN 的服務程序這樣可以保證後期的維護比較少

  現在介紹你在開發Delphi服務器的時候需要注意地方

   不要在程序中使用String變量

  這個也是在實際的開發過程中發現的我最開始開發的時候為了簡單一些就大量使用String變量來開發程序但程序總是在運行一段時間後出現問題後來查原因也不太清楚到網上查資料發現有人介紹不要使用String來做變量將自己的程序全部修改成數組問題就基本解決了

   使用快速的加密算法如XOR 加密或DES加密等算法

  服務器在與客戶端傳遞的時候一定要進行加密但使用什麼類型的加密算法呢?不要使用那種需要大量運算的算法如RSA等算法最好使用XOR加密或DES換位加密算法這樣主要是滿足普通的加密密文的要求又保證服務器的運算速度你也可以使用RSA加密密文但這會造成服務器處理變慢而如果遇到大量的處理時候很容易服務器就拒絕服務器

   使用原ADO函數來連接數據庫

  服務器程序通常都與數據庫想結合那麼使用Delphi開發的時候通常使用ADO的控件來制作但如果你學習ADO手冊會發現對於服務器其實不需要控件來完成數據的操作可以直接使用ADO相應的函數來完成主要因為服務器程序與數據庫通常都是比較簡單的操作沒有很復雜的所以使用原ADO模式就可以了這樣也減少由於ADO控件帶來的問題

   應多使用

  服務器在設計的過程一定要大量的變量支持如果不使用池這個概念你的程序將在創建和釋放變量過程中浪費大量的時間而且容易出現問題設計過程中盡量不要創建和釋放變量如果能考慮到的變量都在開始的運行的時候創建完畢這樣可以加快程序的運行速度減少沖突具體如何使用池這個技術以後有時間再考慮寫一篇介紹一下

   熟練使用指針操作

  如果你不熟悉指針操作那麼你幾乎無法設計出高效的服務器如果你要真正的理解指針的概念對於設計服務器來說就是如虎添翼

  下面舉個例子如使用Recv接收數據到Buffer中後你需要進行解密操作你可以使用下面的方法進行

var
  ab:array [] of byte;
  i :integer;
  ResultBuffer :array [Max] of byte;
begin
  for i := to Sizeof(Buffer) div do
  begin
    move(Buffer[(i)*+]a);
    Des(abtrue);  //這裡使用DES加解密處理
    move(bResultBuffer[(i)*+]);
  end;
end

[]  []  


From:http://tw.wingwit.com/Article/program/Delphi/201311/24703.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.