freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

利用delphi編寫socket通信程序-閱讀頁

2025-07-22 13:04本頁面
  

【正文】 事務(wù)都由該線程來處理。圖1 Indy服務(wù)器工作原理線程與Indy客戶程序Indy客戶端組件并未使用線程。簡單的Indy應(yīng)用示例下面將創(chuàng)建一個簡單的TCP客戶程序和一個簡單的TCP服務(wù)器來演示Indy的基本使用方法。服務(wù)器支持兩條命令:DATA和QUIT。表單布局建立一個項(xiàng)目組,添加一個客戶程序項(xiàng)目和一個服務(wù)器項(xiàng)目??蛻舫绦虮韱紊戏胖昧薚IdTCPClient組件,服務(wù)器程序表單上放置了TIdTCPServer組件??蛻舫绦蚝头?wù)器程序的表單上都放置有TListBox組件,用來顯示通信記錄。代碼列表1procedure (Sender: TObject)。 := StrToInt()。正在連接 39。...39。with IdTCPClient dobegintryConnect(5000)。 := False。 := True。遠(yuǎn)程主機(jī)無響應(yīng)!39。()。//end tryexcept(39。 + + 39。)。//end tryend。procedure (Sender: TObject)。DATA 39。with IdTCPClient dobegintryWriteLn(39。 + )。發(fā)送數(shù)據(jù)失敗!39。()。同主機(jī) 39。 的連接已斷開!39。 := True。 := False。//end tryend。procedure (Sender: TObject)。begin(39。)。QUIT39。finally()。同主機(jī) 39。 的連接已斷開!39。 := True。 := False。//end tryend。然后調(diào)用ReadLn方法讀取服務(wù)器應(yīng)答數(shù)據(jù)。在“斷開”按鈕事件響應(yīng)過程中,向服務(wù)器發(fā)送QUIT命令,并調(diào)用Disconnect方法斷開連接。服務(wù)器程序代碼服務(wù)器程序片斷如代碼列表2所示。begin := StrToInt()。 := False。(39。)。procedure (Sender: TObject)。 := True。(39。)。procedure (AThread: TIdPeerThread)。來自主機(jī) 39。 的連接請求已被接納!39。(39。)。procedure (AThread: TIdPeerThread)。beginwith dobeginsCommand := ReadLn()。 來自于主機(jī) 39。(AddLogEntry)。DATA 39。WriteLn(39。)。endelse if SameText(sCommand, 39。) then beginFLogEntry := 39。+ + 39。(AddLogEntry)。endelse beginWriteLn(39。)。無法識別命令:39。(AddLogEntry)。//endifend。procedure ()。end。begin(FLogEntry)?!皢印卑粹o設(shè)置IdTCPServer 的Active屬性為True來啟動服務(wù)器,“停止”按鈕設(shè)置Active屬性為False來關(guān)閉服務(wù)器。OnCorrect事件在一個客戶連接請求被接受時發(fā)生,為該連接創(chuàng)建的線程AThread被作為參數(shù)傳遞給IdTCPServerConnect方法。OnExecute事件在TIdPeerThread對象試圖執(zhí)行其Run方法時發(fā)生。這一點(diǎn)很重要,它意味著可能有多個OnExecute事件響應(yīng)過程被同時執(zhí)行。在IdTCPServerExecute方法中,首先讀入一條指令,然后對指令進(jìn)行判別。如果收到的是QUIT指令,則斷開連接。運(yùn)行程序運(yùn)行客戶端和服務(wù)器程序,按如下流程進(jìn)行操作:“啟動”按鈕啟動服務(wù)器;“連接”按鈕,建立同服務(wù)器的連接;“Hello, Indy!”,并按“發(fā)送”按鈕發(fā)送數(shù)據(jù);“斷開”按鈕,斷開同服務(wù)器的連接;“停止”按鈕停止服務(wù)器。圖4 簡單的TCP客戶圖5 簡單的TCP服務(wù)器更多信息要了解更多的關(guān)于Indy的信息,可以參閱:[1] ;[2] Indy的幫助文件;[3] ;[4] Chad Z. Hower(Indy的原始作者)和Hadi Hariri合著的“Indy In Depth”,可以從;[5] Marco Cantu著,Sybex出版“Mastering Delphi 7”中相關(guān)的章節(jié)。這是一個非常值得一問的問題,而且有一個簡單卻有不是很顯而易見的答案。實(shí)現(xiàn)了多余120種協(xié)議和互聯(lián)網(wǎng)標(biāo)準(zhǔn)。健壯性每個Indy所支持的協(xié)議都是健壯的,對每個協(xié)議都具有完備的支持。FTP內(nèi)建了幾乎所有已知文件列表格式的file parser。易于使用因?yàn)樗慕涌陬愋妥裱氖亲枞P?,Indy是非常易于使用的。每件事情按照順序發(fā)生,就像訪問文件那樣。這個特性位于我們的to do列表之上,但是目前還不可用。然而,Indy組件可以被可視化的創(chuàng)建,托放到窗體和自定義類上。自定義的服務(wù)器甚至可以這樣通過可視化地構(gòu)建mand handler的方法來建立。Indy是開放源代碼的Indy開發(fā)者是一大群專注且活躍的人們。Indy Pit Crew中有許多網(wǎng)絡(luò)編程和協(xié)議方面的著名且在業(yè)內(nèi)廣受尊敬專家。支持與Indy是開放源代碼的同時,使用Indy還能選擇商業(yè)的支持。通過它的Indy Experts Support Program,你可以獲得優(yōu)先的支持。Indy Experts還是Indy Plus的一部分。源代碼Indy以附帶完整源代碼的形式發(fā)布。再也不用猜測內(nèi)部發(fā)生了什么,或者嘗試著琢磨為什么事情不如你所愿。經(jīng)過驗(yàn)證的Indy是經(jīng)過驗(yàn)證的——Indy已經(jīng)有10年歷史了而且在數(shù)以百萬計(jì)的由幾十幾百人開發(fā)的軟件的安裝拷貝中使用著??赡苣阋呀?jīng)用過了包含Indy的程序,而你甚至都沒有意識到它的存在。通過實(shí)現(xiàn)所需的功能然后簡單的把它注冊到Indy之中就能添加新的功能。語言:C C++ Delphi JScript Visual Basic 平臺:Linux .Net Framework Win32 Indy是單一源碼的;單一源碼的基礎(chǔ)被用來支持所有這些平臺和語言。s background includes work in the employment, security, chemical, energy, trading, telemunications, wireless, and insurance industries. Chad39。 是不是也覺得FastNet組件支持的網(wǎng)絡(luò)協(xié)議還不夠多?現(xiàn)在不用煩惱了,有一套功能很豐富、使用很方便、開放源代碼的免費(fèi)INTERNET控件集可以解決你的煩惱?! ∈裁词荌NDY?它有什么功能?怎么用?就讓我慢慢道來。INDY控件集的客戶端和服務(wù)器控件都有完整、詳細(xì)的源代碼例程和幫助文件,用戶可以根據(jù)這些例子,簡單方便快速的建造各種服務(wù)器程序,例如WEB服務(wù)器、TELNET服務(wù)器、IRC服務(wù)器、TCP、UDP服務(wù)器等,而這些服務(wù)器都是支持多線程的。著名的OICQ使用的協(xié)議是UDP,有了INDY你可以使用UDP服務(wù)器和UDP客戶端寫出一個和OICQ較勁的東東來。目前。Kylix已經(jīng)把INDY作為標(biāo)準(zhǔn)組件打包到發(fā)行包里了?! 】戳嗽趺炊辔说奶匦裕遣皇瞧炔患按南氲玫剿??不用急,你可以隨時到INDY的主頁上下載一份免費(fèi)的源代碼來安裝,INDY的網(wǎng)址是(),主頁上會公布最新的INDY消息,發(fā)表更新的源代碼和相關(guān)文檔。INDY小組會及時回答在新聞組里提出的關(guān)于INDY的問題。DELPHI超級Internet控件集INDY 20010406WinGerKyesky 上一頁 1 2 3 下一頁  INDY的安裝很簡單,現(xiàn)在INDY的網(wǎng)站正式提供WINDOWS版本的安裝程序供下載,支持Kylix的版本則包含在BORLAND公司的Kylix發(fā)行包里,不過由于BORLAND修改了一些文件的原因,導(dǎo)致INDY的例程都不能編譯成功,所以INDY網(wǎng)站提供了針對Kylix修改的例程文件下載。等安裝完成,打開你的開發(fā)平臺程序,就可以在控件欄里發(fā)現(xiàn)新加的三個欄目:INDY SERVERS、INDY CLIENTS、INDY MISC(圖三)。而安裝了INDY的目錄里,包含有INDY的控件文件和控件源代碼以及例程。 圖一 選擇開發(fā)平臺類型和版本 圖二 控件面板圖  安裝好INDY后,可以開始嘗試INDY的新鮮好味道了。先編譯幾個例程,看看INDY的強(qiáng)大功能吧?! ∈煜INSOCK編程的讀者一定會覺得奇怪吧,為什么INDY是是完全基于SOCKET阻塞工作模式的呢?異步模式(非阻塞模式)是WINSOCK的一大特點(diǎn),為什么不用呢?  其實(shí),之所以大多數(shù)WINDOWS下的INTERNET程序都使用異步模式,這和WINSOCK的歷史有關(guān)。在WINDOWS ,如果使用阻塞模式,在通訊時會鎖定用戶界面使程序沒有響應(yīng),為了避免這種情況,WINSOCK就引入異步模式這個新特性。但是,隨著新的WINDOWS操作系統(tǒng)的出現(xiàn),如WINDOWS 9NT、9ME、2000等,這些操作系統(tǒng)開始支持多線程?! ∈聦?shí)上,UNIX下的SOCKET只支持阻塞模式(現(xiàn)在UNXI的SOCKET有了一些新的非阻塞特性,不過絕大多數(shù)應(yīng)用仍然使用阻塞模式)。   更容易移植到UNIX,使用INDY的DELPHI程序,可以不做太多(甚至不做)修改,就可以把WINDOWS的DELPHI源代碼拿到LINUX下,用Kylix來編譯成LINUX下的網(wǎng)絡(luò)程序 DELPHI超級Internet控件集INDY 20010406WinGerKyesky 上一頁 1 2 3   更容易在多線程程序里使用,由于阻塞模式的代碼可以放在一起,可以很方便的把這些代碼包裹在線程里面來使用,而不象異步模式,需要針對不同的事件,設(shè)置不同的處理代碼。阻塞模式需要等待任務(wù)完成才返回,這樣,當(dāng)主線程里調(diào)用阻塞任務(wù)運(yùn)行時,程序不能處理用戶界面的消息。只要在你的程序里,簡單的填加一個TidAntiFreeze控件到任何地方(隨便往FORM上放),不需要寫任何代碼(最多把超時時間改一下),就可以很好的解決用戶界面不響應(yīng)的問題。 Try// 在這里寫入你的處理代碼finallyDisconnect。end。beginwith SocketComponent do beginConnect。end。OutData := 39。while length(OutData) 0 do begin。finally Disconnect。end。procedure 。end。vari: Integer。OutData := Copy(OutData, i + 1, MaxInt)。關(guān)于INDY的簡單介紹就到這里了,感興趣的朋友就去下載一個用吧,你一定會喜歡上它的。這是一個非常值得一問的問題,而且有一個簡單卻有不是很顯而易見的答案。實(shí)現(xiàn)了多余120種協(xié)議和互聯(lián)網(wǎng)標(biāo)準(zhǔn)。健壯性每個Indy所支持的協(xié)議都是健壯的,對每個協(xié)議都具有完備的支持。FTP內(nèi)建了幾乎所有已知文件列表格式的file parser。易于使用因?yàn)樗慕涌陬愋妥裱氖亲枞P?,Indy是非常易于使用的。每件事情按照順序發(fā)生,就像訪問文件那樣。這個特性位于我們的to do列表之上,但是目前還不可用。然而,Indy組件可以被可視化的創(chuàng)建,托放到窗體和自定義類上。自定義的服務(wù)器甚至可以這樣通過可視化地構(gòu)建mand handler的方法來建立。Indy是開放源代碼的Indy開發(fā)者是一大群專注且活躍的人們。Indy Pit Crew中有許多網(wǎng)絡(luò)編程和協(xié)議方面的著名且在業(yè)內(nèi)廣受尊敬專家。支持與Indy是開放源代碼的同時,使用Indy還能選擇商業(yè)的支持。通過它的Indy Experts Support Program,你可以獲得優(yōu)先的支持。Indy Experts還是Indy Plus的一部分。源代碼Indy以附帶完整源代碼的形式發(fā)布。再也不用猜測內(nèi)部發(fā)生了什么,或者嘗試著琢磨為什么事情不如你所愿。經(jīng)過驗(yàn)證的Indy是經(jīng)過驗(yàn)證的——Indy已經(jīng)有10年歷史了而且在數(shù)以百萬計(jì)的由幾十幾百人開發(fā)的軟件的安裝拷貝中使用著??赡苣阋呀?jīng)用過了包含Indy的程序,而你甚至都沒有意識到它的存在。通過實(shí)現(xiàn)所需的功能然后簡單的把它注冊到Indy之中就能添加新的功能。語言:C C++ Delphi JScript Visual Basic 平臺:Linux .Net Framework Win32 Indy是單一源碼的;單一源碼的基礎(chǔ)被用來支持所有這些平臺和語言。s background includes work in the employment, security, chemical, energy, trading, telemunications, wireless, and insurance industries. Chad39
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1