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

正文內(nèi)容

利用delphi編寫socket通信程序-展示頁

2025-07-16 13:04本頁面
  

【正文】 的異常。阻塞式訪問更像是文件存取。這種訪問方式被稱作非阻塞式連接,它要求你對事件作出響應(yīng),設(shè)置狀態(tài)機,并通常還需要一個等待循環(huán)?! ndy是阻塞式(Blocking)的  當(dāng)你使用Winsock開發(fā)網(wǎng)絡(luò)應(yīng)用程序時,從Socket中讀取數(shù)據(jù)或者向Socket寫入數(shù)據(jù)都是異步發(fā)生的,這樣就不會阻斷程序中其它代碼的執(zhí)行。使用這些組件你可以開發(fā)基于各種協(xié)議的TCP客戶和服務(wù)器應(yīng)用程序,并處理相關(guān)的編碼和安全問題?! elphi 7中所帶的是Indy 9。Indy曾經(jīng)叫做WinShoes(雙關(guān)于WinSock——Windows的Socket庫),是由Chad Z. Hower領(lǐng)導(dǎo)的一群開發(fā)者
構(gòu)建的?! ¢_放源代碼的Internet組件集——Internet Direct(Indy)Internet Direct(Indy)是一組開放源代碼的Internet組件,涵蓋了幾乎所有流行的Internet協(xié)議。因此,筆者使用了Indy。Delphi 7中帶有兩套TCP Socket組件:Indy Socket組件
(IdTCPClient和IdTCPServer)和Delphi原生的TCP Socket組件(ClientSocket和ServerSocket)。用Indy組件開發(fā)Socket應(yīng)用程序 創(chuàng)建時間:2004316文章屬性:轉(zhuǎn)載文章提交:絕對零度今日瀏覽:23總共次數(shù):648 文章作者:虛度文章出處:yesky   筆者在前一段的工作中,需要開發(fā)一套簡單的網(wǎng)絡(luò)數(shù)據(jù)傳輸程序?! ∵@是我對Delphi中的Socket應(yīng)用的理解,不足之處希望大家指正。  同uses中可以看出,如果繼續(xù)深入winsock文件,在其中可以發(fā)現(xiàn)所有的Windows Socket的基本方法。第一類建立在TComponet的基礎(chǔ)上,第二類直接構(gòu)建在TObject基礎(chǔ)上?! ≡贒elphi中,對于Windows中的Socket進(jìn)行了有效的封裝。Bind()用來同服務(wù)器的地址
邦定,如果一個主機只有一個IP地址,實際上邦定的作用就相對多余了?! ocket可以是基于TCP的,也可以是基于UDP,同時Socket甚至建立在其他的協(xié)議,比如IPX/SPX,DECNet等。標(biāo)準(zhǔn)的Socket的應(yīng)用程序框架如下:Server方: Socket()[ 新建一個Socket]--Bind()[ 同服務(wù)器地址邦定 ]--Listen() --Accept()--block wait--read()[接受消息,在windows平臺中,方法為send(TCP),或者是
sendto(UDP)]--處理服務(wù)請求--Write()[發(fā)送消息,在windows平臺中,方法為send(TCP), 或者為sendto(UDP)。系統(tǒng)內(nèi)部肯
定調(diào)用了closesocket()方法?! 〉谝欢螢殛P(guān)閉應(yīng)用程序。 := True。procedure (Sender: TObject)。Close。begin。而ClientSocketDisconnect在ClientSocket發(fā)出Disconncet時觸發(fā)?! ∵@兩段比較簡單。beginListenItemClick(nil)。procedure (Sender: TObject。begin。procedure (Sender: TObject。其中,ClientSocketRead中的Socket實際上就是Socket本身,而在
[]中的某個Socket。end。Socket: TCustomWinSocket)。end。Socket: TCustomWinSocket)。  ServerSocket的Accept方法,當(dāng)客戶機第一次連接時完成,通過其參數(shù)可以認(rèn)為,它是在標(biāo)準(zhǔn)的accept方法后執(zhí)行的,因為有TCustomWinSocket這個參數(shù)類型,它應(yīng)該是標(biāo)準(zhǔn)Server方
Socket的返回值。beginIsServer := True。procedure (Sender: TObject。在標(biāo)準(zhǔn)Socket中,服務(wù)器方的Socket通過accept()方法的返回值獲取維持同客戶機連接的
Socket,而發(fā)送、接受消息的方法分別為send(sendto)和recv(recvfrom), Delphi對此進(jìn)行了封裝?! ≡摱未a的作用很明顯,就是開始發(fā)消息了。beginif Key = VK_Return thenif IsServer then[0].SendText([ 1])else([ 1])。 var Key: Word。讀者需要了解的是主機地址只是Socket作為客戶機時具有的一個屬性,Socket作為服務(wù)器時“一般“不用地址,因為它同本機綁定。  這段程序的主要功能就是當(dāng)用戶選擇ConnectItem菜單項時,設(shè)置應(yīng)用程序為客戶機,彈出input框,讓用戶輸入服務(wù)器的地址。end。Active := True。Address Name:39。Computer to connect to39。beginif then := False。 ?。?、雙擊ConnectItem,敲入以下代碼。實際上,只有用戶一開始選擇該菜單項,表明該程序用作Server。end。endelsebeginif then := False。if thenbegin := False。寫入如下代碼:procedure (Sender: TObject)。下面我們
一邊編寫代碼一邊解釋原因?! ∠旅媸且粋€簡單的Socket通信程序,其中客戶機和服務(wù)機是同一個程序,當(dāng)客戶機(服務(wù)器)在一個memo1中輸入一段文字然后敲入回車,該段文字就可以顯示在服務(wù)器(客戶機)的memo2
中,反之亦成立。下面我們實例解讀在Delphi中如何利用Socket編寫通信程序。在Delphi中,其底層的Socket也應(yīng)該是Windows的Socket。套接字屏蔽了底層通信軟件和具體操作系統(tǒng)的差異,使得任何兩臺安裝了TCP協(xié)議軟件和實現(xiàn)了套接字規(guī)范的計
算機之間的通信成為可能。TCP和UDP協(xié)議都非常復(fù)雜,尤其是TCP協(xié)議,為了保證網(wǎng)絡(luò)傳輸?shù)?br />正確性和有效性,必須進(jìn)行一系列復(fù)雜的糾錯和排序等處理。Indy10Install All packages are followed by X0 (Where X is your Delphi verison).1. Download source from the Development Snapshot. Delphi / BCB Installation1. Open and pile in the following order: 2.1. IndySystem (in Lib\System) 2. IndyCore (in Lib\Core) 3. IndyProtocols (in Lib\Protocols) 4. IndySuperCore (in Lib\SuperCore)If you are not using SuperCore, then you do not need to pile this package. 3. Now open and click install in the following order 4.5.1. dclIndyCore (in Lib\Core) 2. dclIndyProtocols (in Lib\Protocols) 3. dclSuperCore (in Lib\SuperCore)Only install this if you have piled SuperCore. 利用Delphi編寫Socket通信程序20040824 人氣:5925 出處:csdn 作者: dudunono [原作] 一、Delphi與Socket  計算機網(wǎng)絡(luò)是由一系列網(wǎng)絡(luò)通信協(xié)議組成的,其中的核心協(xié)議是傳輸層的TCP/IP和UDP協(xié)議。TCP是面向連接的,通信雙方保持一條通路,好比目前的電話線,使用telnet登陸B(tài)BS,用的
就是TCP協(xié)議;UDP是無連接的,通信雙方都不保持對方的狀態(tài),瀏覽器訪問Internet時使用的HTTP協(xié)議就是基于UDP協(xié)議的?! ocket是建立在傳輸層協(xié)議(主要是TCP和UDP)上的一種套接字規(guī)范,最初是由美國加州Berkley大學(xué)提出,它定義兩臺計算機間進(jìn)行通信的規(guī)范(也是一種編程規(guī)范),如果說兩臺計算
機是利用一個“通道“進(jìn)行通信,那么這個“通道“的兩端就是兩個套接字?! ∥④浀腤indows Socket規(guī)范(簡稱winsock)對Berkley的套接字規(guī)范進(jìn)行了擴展,利用標(biāo)準(zhǔn)的Socket的方法,可以同任何平臺上的Socket進(jìn)行通信;利用其擴展,可以更有效地實現(xiàn)在
Windows平臺上計算機間的通信。Socket減輕了編寫計算機間通信軟件的難度,但總的說來還是相當(dāng)復(fù)雜的(這一點在后面具體會講
到);Inprise在Delphi中對Windows Socket進(jìn)行了有效的封裝,使得用戶可以很方便地編寫網(wǎng)絡(luò)通信程序。二、利用Delphi編寫Socket通信程序。具體步驟如下:  新建一個form,任意命名,不妨設(shè)之為chatForm;放上一個MainMenu(在Standard欄中),建立ListenItem、ConnectItem、Disconnect和Exit菜單項;在從Internet欄中選擇
TServerSocket、TClientSocket添加到chatForm中,其中把TClientSocket的名字設(shè)為ClientSocket, port設(shè)為1025,默認(rèn)的active為false;把TServerSocket的名字設(shè)為ServerSocket,
port設(shè)為1025,默認(rèn)的active為false,其他的不變;再放入兩個memo,一個命名為memo1,另外一個命名為memo2,其中把memo2的color設(shè)置為灰色,因為主要用來顯示對方的輸入?! 。病㈦p擊ListemItem。begin := not 。 := True。end?! ≡摮绦蚨蔚恼f明如下:當(dāng)用戶選擇ListemItem時,該ListenItem取反,如果選中的話,說明處于Listen狀態(tài),讀者要了解的是:listen是Socket作為Server時一個專有的方法,如果處于
listen,則ServerSocket設(shè)置為活動狀態(tài);否則,取消listen,則關(guān)閉ServerSocket。反之,如果用戶選擇ConnectItem,則
必然作為Client使用。procedure (Sender: TObject)。if InputQuery(39。, 39。, Server) thenif Length(Server) 0 thenwith ClientSocket dobeginHost := Server。 := False。end。這也就是我們不一開始固定ClientSocket的host的原因,
這樣用戶可以動態(tài)地連接不同的服務(wù)器?! ≡趍emo1的keydown方法中寫入如下代碼:procedure (Sender: TObject。Shift: TShiftState)。end。其中如果是Server的話,它只向第一個客戶機發(fā)消息,由于一個服務(wù)器可以連接多個客戶機,而同客戶機的每一個連接都由一個Socket來維
持。 ?。?、其余代碼的簡要介紹。Socket: TCustomWinSocket)。end。 procedure (Sender: TObject。begin()。procedure (Sender: TObject。begin()。  這兩段代碼分別是服務(wù)器方和客戶機方在收到對方的消息時,由Delphi觸發(fā)的,作用是在memo2中顯示收到的消息。不過在Delphi中,對服務(wù)器方的Socket進(jìn)行了有效的封裝。Socket: TCustomWinSocket)。end。Socket: TCustomWinSocket)。end。其中ServerSocketClientConnect在ServerSocket收到一個新的連接時觸發(fā)。procedure (Sender: TObject)。end。begin := False。end。在標(biāo)準(zhǔn)Socket中,每個Socket在關(guān)閉時,必須調(diào)用closesocket()方法,否則系統(tǒng)不會釋放資源。三、標(biāo)準(zhǔn)Socket與Delphi中的Socket。Client方相對簡單:Socket()--Connect()[通過一定的port連接特定的服務(wù)器,這是與服務(wù)器建立連接]--Write()--Read()。在新建一個Socket時,可以指定新建何類Socket。Listen()開始監(jiān)聽網(wǎng)絡(luò),Accept()用于接受連接,其返回值是保持同客戶機聯(lián)系的Socket。在Delphi中,按其繼承關(guān)系,可以分層兩類:一、TComponent-
點擊復(fù)制文檔內(nèi)容
環(huán)評公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1