全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:2527
推到 Plurk!
推到 Facebook!

Indy的英文說明文檔(PDF)

 
bigdogchina
版主


發表:238
回覆:523
積分:312
註冊:2003-04-28

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-07-06 10:54:19 IP:220.112.xxx.xxx 未訂閱
嘿嘿,先來段說明,然後就開始下載該PDF格式的說明文檔 src="http://delphi.ktop.com.tw/loadfile.php?TOPICID=16497930&CC=368970"> 圖二 控制項面板圖 安裝好INDY後,可以開始嘗試INDY的新鮮好味道了。INDY提供的豐富常式就是絕好的教材。先編譯幾個常式,看看INDY的強大功能吧。要想熟練的使用好INDY,就得多多學習這些常式和參考幫助文件。 熟悉WINSOCK編程的讀者一定會覺得奇怪吧,爲什麽INDY是是完全基於SOCKET阻塞工作模式的呢?非同步模式(非阻塞模式)是WINSOCK的一大特點,爲什麽不用呢? 其實,之所以大多數WINDOWS下的INTERNET程式都使用非同步模式,這和WINSOCK的歷史有關。當WINSOCK被移植到WINDOWS的時候,當時的WINDOWS作業系統還是WINDOWS 3.1,而WINDOWS 3.1是不支援多線程的,不象UNIX下可以使用FORK來運行多進程。在WINDOWS 3.1下,如果使用阻塞模式,在通訊時會鎖定用戶介面使程式沒有回應,爲了避免這種情況,WINSOCK就引入非同步模式這個新特性。而使用非同步模式來編制INTERNET程式也就成了WINDOWS程式師的經典教條。但是,隨著新的WINDOWS作業系統的出現,如WINDOWS 95、NT、98、ME、2000等,這些作業系統開始支援多線程。非同步模式這個教條仍然深入人心,使很多程式師會下意識的拒絕使用阻塞模式。 事實上,UNIX下的SOCKET只支援阻塞模式(現在UNXI的SOCKET有了一些新的非阻塞特性,不過絕大多數應用仍然使用阻塞模式)。阻塞模式具有以下幾個比非同步模式優越的特點: 編程更簡單,可以把所有處理SOCKET的代碼放在一起,順序執行,而不用分散在不同的事件處理代碼段裏。 更容易移植到UNIX,使用INDY的DELPHI程式,可以不做太多(甚至不做)修改,就可以把WINDOWS的DELPHI源代碼拿到LINUX下,用Kylix來編譯成LINUX下的網路程式。 更容易在多線程程式裏使用,由於阻塞模式的代碼可以放在一起,可以很方便的把這些代碼包裹在線程裏面來使用,而不象非同步模式,需要針對不同的事件,設置不同的處理代碼。 爲了兼顧簡單可靠和高效,INDY是基於阻塞模式工作的。阻塞模式需要等待任務完成才返回,這樣,當主線程裏調用阻塞任務運行時,程式不能處理用戶介面的消息。INDY提供了一個控制項TidAntiFreeze來解決這個問題。只要在你的程式裏,簡單的填加一個TidAntiFreeze控制項到任何地方(隨便往FORM上放),不需要寫任何代碼(最多把超時時間改一下),就可以很好的解決用戶介面不回應的問題。 下面有兩段示範代碼,可以看出INDY控制項的程式碼和其他使用非同步模式的Internet控制項的程式碼相比,是多麽的簡潔: 代碼一:INDY控制項的程式碼(IndyClient代表INDY控制項的一般形式)
with IndyClient do begin
Connect; 
Try
// 在這裏寫入你的處理代碼
finally
Disconnect; 
end;
end;
代碼二:其他控制項的程式碼(SocketComponent代表一般的Internet控制項)
procedure TFormMain.TestOnClick(Sender: TComponent);
begin
with SocketComponent do begin
Connect;
try
while not Connected do begin
if IsError then begin
Abort;
end;
Application.ProcessMessages;
OutData := 'Data To send';
while length(OutData) > 0 do begin
Application.ProcessMessages;
end;
finally Disconnect; end;
end;
end;    procedure TFormMain.OnConnectError;
begin
IsError := True;
end;    procedure TFormMain.OnRead;
var
i: Integer;
begin
i := SocketComponent.Send(OutData);
OutData := Copy(OutData, i + 1, MaxInt);
end;
關於INDY的簡單介紹就到這裏了,感興趣的朋友就去下載一個用吧,你一定會喜歡上它的。 上面的說明已經是很久以前的了,現在Indy的版本都是9.0以上了,但是基本原理沒有太大變化,而提供下載的該PDF格式文檔就是用來講述Indy的用法的,請站內的各位前輩笑納!

===============
人生在勤,不索何获? 
===============
------
人生在勤,不索何获?
附加檔案:52715_Indy In Depth.pdf
bigdogchina
版主


發表:238
回覆:523
積分:312
註冊:2003-04-28

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-08-24 18:20:50 IP:211.162.xxx.xxx 未訂閱
為了繼續說明Indy的好處,再轉貼一篇相關文章:    為何選擇Indy?     taowen2002 [原作]      作者:Chad Z. Hower 譯者:taowen(taowen.bitapf.org) 原文URL:http://www.atozed.com/indy/Texts/WhyIndy.iwp    來自.net的用戶最常見的問題是:“既然.Net已經有了對socket的支援,為什麽我還要使用Indy?”。這是一個非常值得一問的問題,而且有一個簡單卻有不是很顯而易見的答案。    更多的協定    Indy比起其他庫來實現了更多的協定。實現了多餘120種協定和互聯網標準。要查看Indy與.Net框架實現了的協定的對比,參見feature matrix。    健壯性    每個Indy所支援的協定都是健壯的,對每個協定都具有完備的支援。例如,就SMTP來說支援幾乎你可以想到的諸如MIME,Base65,BinHex,QP,XXE以及UUE等等所有編碼類型。FTP內建了幾乎所有已知文件列表格式的file parser。有了Indy,要給已存在的協定添加額外支援的需要是罕見的。    易於使用    因爲它的介面類型遵循的是阻塞模型,Indy是非常易於使用的。再也沒有機遇事件的狀態機需要管理了。每件事情按照順序發生,就像訪問文件那樣。    Indy支援RAD    注意:這個特性目前還不能用於Visual Studio.net因爲Visual Studio需要比起Delphi來說多得多的工作來支援表單設計器的集成。這個特性位於我們的to do列表之上,但是目前還不可用。在將來的發佈版中期待它的出現吧!    Indy的類可以在運行時很容易的構建使用,而且許多用戶喜歡這樣來使用。然而,Indy元件可以被視覺化的創建,托放到表單和自定義類上。這種方法讓交互和配置屬性與事件變得非常容易。自定義的伺服器甚至可以這樣通過視覺化地構建command handler的方法來建立。    Indy是免費的    使用Indy或部署使用了Indy的程式是完全不需要任何費用的。    Indy是開放源代碼的    Indy開發者是一大群專注且活躍的人們。Indy事實上包含好幾個開發團隊,但是主開發團隊被稱作Indy Pit Crew。Indy Pit Crew中有許多網路編程和協定方面的著名且在業內廣受尊敬專家。    在用戶社群的幫助下,Indy Pit Crew不僅能夠快速的修正錯誤,還能夠把Indy演進爲規模更大且更優良的東西。    支援    與Indy是開放源代碼的同時,使用Indy還能選擇商業的支援。Atozed Software同時提供商業的支援以及Indy方面的諮詢服務。通過它的Indy Experts Support Program,你可以獲得優先的支援。只要事先購買點數(以30歐元購買40點起步),然後在每次使用時從你預付的點數中扣除。Indy Experts還是Indy Plus的一部分。    除了商業支援,Indy還有免費的社群互助支援,得到來自活躍的用戶社群和Indy開發團隊的幫助。    源代碼    Indy以附帶完整源代碼的形式發佈。它不但用Delphi寫成,而且這份完整的源代碼還使得你可以使用Delphi或者DebugCLR(這包含在Visual Studio之中,而且可以用於調試Delphi代碼)來進行調試。再也不用猜測內部發生了什麽,或者嘗試著琢磨爲什麽事情不如你所願。完整的源代碼,完整的支援,完整的力量。    經過驗證的    Indy是經過驗證的——Indy已經有10年歷史了而且在數以百萬計的由幾十幾百人開發的軟體的安裝拷貝中使用著。Indy在小型的商用程式中,福布斯的500強中,政府部門中以及更多的場合中使用。可能你已經用過了包含Indy的程式,而你甚至都沒有意識到它的存在。    靈活性    Indy的每一層都是可插拔的,包括RFC的應答,加密,身份驗證,編碼等等。通過實現所需的功能然後簡單的把它註冊到Indy之中就能添加新的功能。    可攜性    Indy更好移植,既能在語言之間也能在平臺之間。    語言: C#  C++  Delphi  JScript  Visual Basic     平臺: Linux  .Net Framework  Win32     Indy是單一源碼的;單一源碼的基礎被用來支援所有這些平臺和語言。    About the Author Chad Z. Hower, a.k.a. "Kudzu" works for Atozed Software, and is the original author of both Internet Direct (Indy) and IntraWeb. Both Indy and IntraWeb have been licensed by Borland for inclusion in Delphi, Kylix and C++ Builder. Chad's background includes work in the employment, security, chemical, energy, trading, telecommunications, wireless, and insurance industries. Chad's area of specialty is TCP/IP networking and programming, inter-process communication, distributed computing, Internet protocols, and object-oriented programming. When not programming, he likes to cycle, kayak, hike, downhill ski, drive, and do just about anything outdoors. Chad, whose motto is "Programming is an art form that fights back", also posts free articles, programs, utilities and other oddities at Kudzu World. Chad is an ex-patriate who spends his summers in St. Petersburg, Russia, winters in Limassol, Cyprus, and travels extensively year round. Contact Kudzu. ================================= 人生在勤,不索何獲 業精於勤荒於嬉,行成於思毀於隨 臨淵羡魚不如退而結網 發表人 - bigdogchina 於 2004/08/24 19:22:00
------
人生在勤,不索何获?
系統時間:2024-05-17 18:07:45
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!