【正文】
、MDMD5等編解碼,提供INTERNET流行協(xié)議的客戶端和服務(wù)器控件。INDY控件集的客戶端和服務(wù)器控件都有完整、詳細的源代碼例程和幫助文件,用戶可以根據(jù)這些例子,簡單方便快速的建造各種服務(wù)器程序,例如WEB服務(wù)器、TELNET服務(wù)器、IRC服務(wù)器、TCP、UDP服務(wù)器等,而這些服務(wù)器都是支持多線程的。用戶也可以很簡單的編寫出各種客戶端程序,例如EMAIL、FINGER、FTP、PING、TELNET等。著名的OICQ使用的協(xié)議是UDP,有了INDY你可以使用UDP服務(wù)器和UDP客戶端寫出一個和OICQ較勁的東東來。 INDY是完全基于SOCKET阻塞工作模式(后面討論)的開發(fā)庫,現(xiàn)在已經(jīng)支持BORLAND DELPHI、C++ BUIDER和最新的Kylix(LINUX里的DELPHI)等開發(fā)平臺。目前。 DELPHI C++BUIDER C++BUIDER Kylix等版本。Kylix已經(jīng)把INDY作為標準組件打包到發(fā)行包里了。而且據(jù)說DELPHI ,由此可見INDY的強悍實力。 看了怎么多吸引人的特性,是不是迫不及待的想得到它了?不用急,你可以隨時到INDY的主頁上下載一份免費的源代碼來安裝,INDY的網(wǎng)址是(),主頁上會公布最新的INDY消息,發(fā)表更新的源代碼和相關(guān)文檔。如果在開發(fā)過程中遇到什么問題,可以通過訪問BORLAND公司的新聞組(news://)。INDY小組會及時回答在新聞組里提出的關(guān)于INDY的問題。你也可以把使用INDY的心得技巧、發(fā)現(xiàn)的BUG,發(fā)表到新聞組里,為INDY的發(fā)展作出一份貢獻。DELPHI超級Internet控件集INDY 20010406 WinGerKyesky 上一頁 1 2 3 下一頁 INDY的安裝很簡單,現(xiàn)在INDY的網(wǎng)站正式提供WINDOWS版本的安裝程序供下載,支持Kylix的版本則包含在BORLAND公司的Kylix發(fā)行包里,不過由于BORLAND修改了一些文件的原因,導(dǎo)致INDY的例程都不能編譯成功,所以INDY網(wǎng)站提供了針對Kylix修改的例程文件下載。下載了安裝程序后,執(zhí)行安裝程序(請先把你的開發(fā)平臺程序關(guān)掉),設(shè)置好安裝路徑(圖一),選擇好你的開發(fā)平臺的種類(DELPHI或C++BUIDER)和版本(圖二),就可以了。等安裝完成,打開你的開發(fā)平臺程序,就可以在控件欄里發(fā)現(xiàn)新加的三個欄目:INDY SERVERS、INDY CLIENTS、INDY MISC(圖三)。分別是INDY的服務(wù)器類、客戶端類、雜項控件。而安裝了INDY的目錄里,包含有INDY的控件文件和控件源代碼以及例程。你還可以在網(wǎng)站上下載它的幫助文件,幫助文件里包括各個控件的詳細說明,是應(yīng)用好INDY的必備手冊。 圖一 選擇開發(fā)平臺類型和版本 圖二 控件面板圖 安裝好INDY后,可以開始嘗試INDY的新鮮好味道了。INDY提供的豐富例程就是絕好的教材。先編譯幾個例程,看看INDY的強大功能吧。要想熟練的使用好INDY,就得多多學習這些例程和參考幫助文件。 熟悉WINSOCK編程的讀者一定會覺得奇怪吧,為什么INDY是是完全基于SOCKET阻塞工作模式的呢?異步模式(非阻塞模式)是WINSOCK的一大特點,為什么不用呢? 其實,之所以大多數(shù)WINDOWS下的INTERNET程序都使用異步模式,這和WINSOCK的歷史有關(guān)。當WINSOCK被移植到WINDOWS的時候,當時的WINDOWS操作系統(tǒng)還是WINDOWS ,而WINDOWS ,不象UNIX下可以使用FORK來運行多進程。在WINDOWS ,如果使用阻塞模式,在通訊時會鎖定用戶界面使程序沒有響應(yīng),為了避免這種情況,WINSOCK就引入異步模式這個新特性。而使用異步模式來編制INTERNET程序也就成了WINDOWS程序員的經(jīng)典教條。但是,隨著新的WINDOWS操作系統(tǒng)的出現(xiàn),如WINDOWS 9NT、9ME、2000等,這些操作系統(tǒng)開始支持多線程。異步模式這個教條仍然深入人心,使很多程序員會下意識的拒絕使用阻塞模式?! ∈聦嵣希琔NIX下的SOCKET只支持阻塞模式(現(xiàn)在UNXI的SOCKET有了一些新的非阻塞特性,不過絕大多數(shù)應(yīng)用仍然使用阻塞模式)。阻塞模式具有以下幾個比異步模式優(yōu)越的特點: 編程更簡單,可以把所有處理SOCKET的代碼放在一起,順序執(zhí)行,而不用分散在不同的事件處理代碼段里。 更容易移植到UNIX,使用INDY的DELPHI程序,可以不做太多(甚至不做)修改,就可以把WINDOWS的DELPHI源代碼拿到LINUX下,用Kylix來編譯成LINUX下的網(wǎng)絡(luò)程序 DELPHI超級Internet控件集INDY 20010406 WinGerKyesky 上一頁 1 2 3 更容易在多線程程序里使用,由于阻塞模式的代碼可以放在一起,可以很方便的把這些代碼包裹在線程里面來使用,而不象異步模式,需要針對不同的事件,設(shè)置不同的處理代碼。 為了兼顧簡單可靠和高效,INDY是基于阻塞模式工作的。阻塞模式需要等待任務(wù)完成才返回,這樣,當主線程里調(diào)用阻塞任務(wù)運行時,程序不能處理用戶界面的消息。INDY提供了一個控件TidAntiFreeze來解決這個問題。只要在你的程序里,簡單的填加一個TidAntiFreeze控件到任何地方(隨便往FORM上放),不需要寫任何代碼(最多把超時時間改一下),就可以很好的解決用戶界面不響應(yīng)的問題?! ∠旅嬗袃啥问痉洞a,可以看出INDY控件的程序代碼和其他使用異步模式的Internet控件的程序代碼相比,是多么的簡潔:代碼一:INDY控件的程序代碼(IndyClient代表INDY控件的一般形式)with IndyClient do beginConnect。 Try// 在這里寫入你的處理代碼finallyDisconnect。 end。end。代碼二:其他控件的程序代碼(SocketComponent代表一般的Internet控件) procedure (Sender: TComponent)。beginwith SocketComponent do beginConnect。 trywhile not Connected do beginif IsError then beginAbort。end。OutData := 39。Data To send39。while length(OutData) 0 do begin。end。finally Disconnect。 end。end。end。procedure 。beginIsError := True。end。procedure 。vari: Integer。begini := (OutData)。OutData := Copy(OutData, i + 1, MaxInt)。end。關(guān)于INDY的簡單介紹就到這里了,感興趣的朋友就去下載一個用吧,你一定會喜歡上它的。 為何選擇Indy?作者:未知 來源:未知 加入時間:2004810 開發(fā)文檔 作者:Chad Z. Hower譯者:taowen()原文URL::“,為什么我還要使用Indy?”。這是一個非常值得一問的問題,而且有一個簡單卻有不是很顯而易見的答案。更多的協(xié)議Indy比起其他庫來實現(xiàn)了更多的協(xié)議。實現(xiàn)了多余120種協(xié)議和互聯(lián)網(wǎng)標準。,參見feature matrix。健壯性每個Indy所支持的協(xié)議都是健壯的,對每個協(xié)議都具有完備的支持。例如,就SMTP來說支持幾乎你可以想到的諸如MIME,Base65,BinHex,QP,XXE以及UUE等等所有編碼類型。FTP內(nèi)建了幾乎所有已知文件列表格式的file parser。有了Indy,要給已存在的協(xié)議添加額外支持的需要是罕見的。易于使用因為它的接口類型遵循的是阻塞模型,Indy是非常易于使用的。再也沒有機遇事件的狀態(tài)機需要管理了。每件事情按照順序發(fā)生,就像訪問文件那樣。Indy支持RAD注意:這個特性目前還不能用于Visual Studio需要比起Delphi來說多得多的工作來支持窗體設(shè)計器的集成。這個特性位于我們的to do列表之上,但是目前還不可用。在將來的發(fā)布版中期待它的出現(xiàn)吧!Indy的類可以在運行時很容易的構(gòu)建使用,而且許多用戶喜歡這樣來使用。然而,Indy組件可以被可視化的創(chuàng)建,托放到窗體和自定義類上。這種方法讓交互和配置屬性與事件變得非常容易。自定義的服務(wù)器甚至可以這樣通過可視化地構(gòu)建mand handler的方法來建立。Indy是免費的使用Indy或部署使用了Indy的程序是完全不需要任何費用的。Indy是開放源代碼的Indy開發(fā)者是一大群專注且活躍的人們。Indy事實上包含好幾個開發(fā)團隊,但是主開發(fā)團隊被稱作Indy Pit Crew。Indy Pit Crew中有許多網(wǎng)絡(luò)編程和協(xié)議方面的著名且在業(yè)內(nèi)廣受尊敬專家。在用戶社群的幫助下,Indy Pit Crew不僅能夠快速的修正錯誤,還能夠把Indy演進為規(guī)模更大且更優(yōu)良的東西。支持與Indy是開放源代碼的同時,使用Indy還能選擇商業(yè)的支持。Atozed Software同時提供商業(yè)的支持以及Indy方面的咨詢服務(wù)。通過它的Indy Experts Support Program,你可以獲得優(yōu)先的支持。只要事先購買點數(shù)(以30歐元購買40點起步),然后在每次使用時從你預(yù)付的點數(shù)中扣除。Indy Experts還是Indy Plus的一部分。除了商業(yè)支持,Indy還有免費的社群互助支持,得到來自活躍的用戶社群和Indy開發(fā)團隊的幫助。源代碼Indy以附帶完整源代碼的形式發(fā)布。它不但用Delphi寫成,而且這份完整的源代碼還使得你可以使用Delphi或者DebugCLR(這包含在Visual Studio之中,而且可以用于調(diào)試Delphi代碼)來進行調(diào)試。再也不用猜測內(nèi)部發(fā)生了什么,或者嘗試著琢磨為什么事情不如你所愿。完整的源代碼,完整的支持,完整的力量。經(jīng)過驗證的Indy是經(jīng)過驗證的——Indy已經(jīng)有10年歷史了而且在數(shù)以百萬計的由幾十幾百人開發(fā)的軟件的安裝拷貝中使用著。Indy在小型的商用程序中,福布斯的500強中,政府部門中以及更多的場合中使用??赡苣阋呀?jīng)用過了包含Indy的程序,而你甚至都沒有意識到它的存在。靈活性Indy的每一層都是可插拔的,包括RFC的應(yīng)答,加密,身份驗證,編碼等等。通過實現(xiàn)所需的功能然后簡單的把它注冊到Indy之中就能添加新的功能??梢浦残訧ndy更好移植,既能在語言之間也能在平臺之間。語言:C C++ Delphi JScript Visual Basic 平臺:Linux .Net Framework Win32 Indy是單一源碼的;單一源碼的基礎(chǔ)被用來支持所有這些平臺和語言。About the AuthorChad Z. Hower, . 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. Chad39。s background includes work in the employment, security, chemical, energy, trading, telemunications, wireless, and insurance industries. Chad39。s area of specialty is TCP/IP networking and programming, interprocess munication, distributed puting, Internet protocols, and objectoriented 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 expatriate who spends his summers in St. Petersburg, Russia, winters in Limassol, Cyprus, and travels extensively year round. Contact Kudzu. 36 / 36