




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、 在Internet互聯(lián)網(wǎng)被廣泛運用的今天,網(wǎng)絡(luò)編程顯得日益重要。網(wǎng)絡(luò)運用是Java言語獲得勝利的領(lǐng)域之一,它曾經(jīng)成為如今Internet上最流行的一種編程言語。 Java言語的網(wǎng)絡(luò)功能非常強大,其網(wǎng)絡(luò)類庫不僅使我們可以開發(fā)訪問Internet運用層程序,還可以實現(xiàn)網(wǎng)絡(luò)底層的通訊。 本章要點11.1 網(wǎng)絡(luò)根底11.2 InetAddress編程11.3 URL編程11.4 Socket編程11.5 數(shù)據(jù)報通訊思索與練習(xí)1111.1.1 TCP/IP協(xié)議協(xié)議網(wǎng)絡(luò)通訊協(xié)議是計算機間進展通訊所要遵照的各種規(guī)網(wǎng)絡(luò)通訊協(xié)議是計算機間進展通訊所要遵照的各種規(guī)那么的集合。那么的集合。Internet的主要協(xié)
2、議有:網(wǎng)絡(luò)層的的主要協(xié)議有:網(wǎng)絡(luò)層的IP協(xié)協(xié)議,傳輸層的議,傳輸層的TCP、UDP協(xié)議,運用層的協(xié)議,運用層的FTP、SMTP等協(xié)議。等協(xié)議。其中,其中,TCP/IP傳輸控制協(xié)議傳輸控制協(xié)議/網(wǎng)間協(xié)議是網(wǎng)間協(xié)議是Internet的主要協(xié)議,定義了計算機和外設(shè)進展通訊所運用的的主要協(xié)議,定義了計算機和外設(shè)進展通訊所運用的規(guī)那么。規(guī)那么。TCP/IP網(wǎng)絡(luò)參考模型包括四個層次:運用層、網(wǎng)絡(luò)參考模型包括四個層次:運用層、傳輸層、網(wǎng)絡(luò)層、鏈路層。傳輸層、網(wǎng)絡(luò)層、鏈路層。銜接到銜接到TCP/IP網(wǎng)絡(luò)中的每臺計算機或其他設(shè)備都網(wǎng)絡(luò)中的每臺計算機或其他設(shè)備都有獨一的地址,這就是有獨一的地址,這就是IP地址。地
3、址。IP地址本質(zhì)上是一個地址本質(zhì)上是一個32位的整數(shù),通常以位的整數(shù),通常以“%d.%d.%d.%d的方式表示,的方式表示,其中每個其中每個d是一個是一個8位整數(shù)。位整數(shù)。在在TCP/IP網(wǎng)絡(luò)中,不同的機器之間進展通訊時,數(shù)據(jù)網(wǎng)絡(luò)中,不同的機器之間進展通訊時,數(shù)據(jù)的傳輸是由傳輸層控制的,這包括數(shù)據(jù)要發(fā)往的目的的傳輸是由傳輸層控制的,這包括數(shù)據(jù)要發(fā)往的目的機器及運用程序、數(shù)據(jù)的質(zhì)量控制等。機器及運用程序、數(shù)據(jù)的質(zhì)量控制等。 TCP/IP網(wǎng)絡(luò)網(wǎng)絡(luò)中最常用的傳輸協(xié)議中最常用的傳輸協(xié)議TCPTransport Control Protocol和和UDPUser Datagram Protocol就屬于
4、就屬于這一層。這一層。11.1.1 TCP/IP協(xié)議協(xié)議傳輸層通常以傳輸層通常以TCP和和UDP協(xié)議來控制端點到端點的通協(xié)議來控制端點到端點的通訊。用于通訊的端點是由訊。用于通訊的端點是由Socket來定義的,而來定義的,而Socket是由是由IP地址和端口號組成的。地址和端口號組成的。TCP是一種面向銜接的保證可靠傳輸?shù)膮f(xié)議。經(jīng)過是一種面向銜接的保證可靠傳輸?shù)膮f(xié)議。經(jīng)過TCP協(xié)議傳輸,得到的是一個順序的無過失的數(shù)據(jù)流。協(xié)議傳輸,得到的是一個順序的無過失的數(shù)據(jù)流。發(fā)送方和接納方的成對的兩個發(fā)送方和接納方的成對的兩個socket之間必需建立銜之間必需建立銜接,以便在接,以便在TCP協(xié)議的根底上進
5、展通訊,當(dāng)一個協(xié)議的根底上進展通訊,當(dāng)一個socket通常都是通常都是server socket等待建立銜接時,另等待建立銜接時,另一個一個socket可以要求進展銜接,一旦這兩個可以要求進展銜接,一旦這兩個socket銜接銜接起來,它們就可以進展雙向數(shù)據(jù)傳輸,雙方都可以進起來,它們就可以進展雙向數(shù)據(jù)傳輸,雙方都可以進展發(fā)送或接納操作。展發(fā)送或接納操作。11.1.2 通訊端口通訊端口一臺機器只經(jīng)過一條鏈路銜接到網(wǎng)絡(luò)上,但一臺機器一臺機器只經(jīng)過一條鏈路銜接到網(wǎng)絡(luò)上,但一臺機器中往往有很多運用程序需求進展網(wǎng)絡(luò)通訊,如何區(qū)分中往往有很多運用程序需求進展網(wǎng)絡(luò)通訊,如何區(qū)分呢?這就要靠網(wǎng)絡(luò)端口號呢?這就
6、要靠網(wǎng)絡(luò)端口號port了。了。端口號是一個標(biāo)志機器的邏輯通訊信道的正整數(shù),端端口號是一個標(biāo)志機器的邏輯通訊信道的正整數(shù),端口號不是物理實體。口號不是物理實體。IP地址和端口號組成了所謂的地址和端口號組成了所謂的Socket,Socket是網(wǎng)絡(luò)上運轉(zhuǎn)的程序之間雙向通訊鏈?zhǔn)蔷W(wǎng)絡(luò)上運轉(zhuǎn)的程序之間雙向通訊鏈路的最后終結(jié)點,它是路的最后終結(jié)點,它是TCP和和UDP的根底。的根底。IP協(xié)議運用協(xié)議運用IP地址使數(shù)據(jù)投遞到正確的計算機上,地址使數(shù)據(jù)投遞到正確的計算機上,TCP和和UDP協(xié)議運用端口號協(xié)議運用端口號port將數(shù)據(jù)投遞給正將數(shù)據(jù)投遞給正確的運用程序。確的運用程序。端口號是用一個端口號是用一個16
7、位的整數(shù)來表達的,其范圍為位的整數(shù)來表達的,其范圍為065535,其中,其中01023為系統(tǒng)所保管,專門給那些通用為系統(tǒng)所保管,專門給那些通用的效力的效力well-known services,常見的有:,常見的有:http效力效力的端口號為的端口號為80,telnet效力的端口號為效力的端口號為21,ftp效力的效力的端口為端口為23等等。因此,當(dāng)我們編寫通訊程序時,應(yīng)選等等。因此,當(dāng)我們編寫通訊程序時,應(yīng)選擇一個大于擇一個大于1023的數(shù)作為端口號,以免發(fā)生沖突。的數(shù)作為端口號,以免發(fā)生沖突。 11.1.3 URLURL是一致資源定位符是一致資源定位符Uniform Resource Lo
8、cator的簡稱,它表示的簡稱,它表示Internet上某一資源的地址。上某一資源的地址。Internet上的資源包括上的資源包括HTML文件、圖像文件、聲音文件、動文件、圖像文件、聲音文件、動畫文件以及其他任何內(nèi)容并不完全是文件,也可以畫文件以及其他任何內(nèi)容并不完全是文件,也可以是一個對數(shù)據(jù)庫的查詢等。經(jīng)過是一個對數(shù)據(jù)庫的查詢等。經(jīng)過URL,就可以訪問,就可以訪問Internet。閱讀器或其他程序經(jīng)過解析給定的。閱讀器或其他程序經(jīng)過解析給定的URL就就可以在網(wǎng)絡(luò)上查找相應(yīng)的文件或其他資源??梢栽诰W(wǎng)絡(luò)上查找相應(yīng)的文件或其他資源。一個一個URL包括兩部分內(nèi)容:協(xié)議稱號和資源稱號,中包括兩部分內(nèi)容
9、:協(xié)議稱號和資源稱號,中間用冒號隔開:間用冒號隔開:協(xié)議名資源名協(xié)議名資源名如:如:協(xié)議稱號指的就是獲取資源時所運用的運用層協(xié)議,協(xié)議稱號指的就是獲取資源時所運用的運用層協(xié)議,如如http,ftp,file等;資源稱號那么是資源的完好地址,等;資源稱號那么是資源的完好地址,包括主機名、端口號、文件名或文件內(nèi)部的一個援用。包括主機名、端口號、文件名或文件內(nèi)部的一個援用。當(dāng)然,并不是一切的當(dāng)然,并不是一切的URL都必需包含這些內(nèi)容。都必需包含這些內(nèi)容。一個完好的一個完好的URL如下:如下:homescape:80/home/white_paper.html#intro_1協(xié)議協(xié)議 主機域名主機域名
10、IP地址端口號地址端口號 目錄文件名目錄文件名 HTML參考點參考點 11.1.4 客戶機客戶機/效力器方式效力器方式目前較為流行的網(wǎng)絡(luò)編程模型是客戶機目前較為流行的網(wǎng)絡(luò)編程模型是客戶機/效力器效力器C/S構(gòu)造。即通訊雙方一方作為效力器等待客戶提出懇求構(gòu)造。即通訊雙方一方作為效力器等待客戶提出懇求并予以呼應(yīng)。客戶那么在需求效力時向效力器提出懇并予以呼應(yīng)。客戶那么在需求效力時向效力器提出懇求。效力器普通作為守護進程一直運轉(zhuǎn),監(jiān)聽網(wǎng)絡(luò)端求。效力器普通作為守護進程一直運轉(zhuǎn),監(jiān)聽網(wǎng)絡(luò)端口,一旦有客戶懇求,就會啟動一個效力進程來呼應(yīng)口,一旦有客戶懇求,就會啟動一個效力進程來呼應(yīng)該客戶,同時本人繼續(xù)監(jiān)聽效
11、力端口,使后來的客戶該客戶,同時本人繼續(xù)監(jiān)聽效力端口,使后來的客戶也能及時得到效力。也能及時得到效力。 11.1.5 Java網(wǎng)絡(luò)編程網(wǎng)絡(luò)編程Java 經(jīng)過前面引見的流式輸入經(jīng)過前面引見的流式輸入/輸出接口和添加在網(wǎng)輸出接口和添加在網(wǎng)絡(luò)上建立輸入絡(luò)上建立輸入/輸出對象特性這兩個方法支持輸出對象特性這兩個方法支持TCP/IP。Java支持支持TCP和和UDP協(xié)議族。協(xié)議族。TCP用于網(wǎng)絡(luò)的可靠的用于網(wǎng)絡(luò)的可靠的流式輸入流式輸入/輸出。輸出。UDP支持更簡單的、快速的、點對點支持更簡單的、快速的、點對點的數(shù)據(jù)報方式。的數(shù)據(jù)報方式。Java的網(wǎng)絡(luò)編程分為三個層次:的網(wǎng)絡(luò)編程分為三個層次:1最高一級的
12、網(wǎng)絡(luò)通訊就是我們前面章節(jié)中講的從最高一級的網(wǎng)絡(luò)通訊就是我們前面章節(jié)中講的從網(wǎng)絡(luò)上下載網(wǎng)絡(luò)上下載Applet??蛻舳碎喿x器經(jīng)過。客戶端閱讀器經(jīng)過HTML文件中文件中的的標(biāo)志來識別標(biāo)志來識別Applet,并解析,并解析Applet的屬性,的屬性,經(jīng)過網(wǎng)絡(luò)獲取經(jīng)過網(wǎng)絡(luò)獲取Applet的字節(jié)碼文件。的字節(jié)碼文件。2前面我們引見了聲音播放和圖像顯示,其中聲音前面我們引見了聲音播放和圖像顯示,其中聲音文件和圖像文件的獲取是次一級的通訊。經(jīng)過類文件和圖像文件的獲取是次一級的通訊。經(jīng)過類URL的對象指明文件所在位置,并從網(wǎng)絡(luò)上下載聲音和圖的對象指明文件所在位置,并從網(wǎng)絡(luò)上下載聲音和圖像文件。像文件。11.1.
13、5 Java網(wǎng)絡(luò)編程網(wǎng)絡(luò)編程3.最低一級的通訊是利用最低一級的通訊是利用java包中提供的類直接在程包中提供的類直接在程序中實現(xiàn)網(wǎng)絡(luò)通訊。序中實現(xiàn)網(wǎng)絡(luò)通訊。針對網(wǎng)絡(luò)通訊的不同層次,針對網(wǎng)絡(luò)通訊的不同層次,Java提供的網(wǎng)絡(luò)功能有四提供的網(wǎng)絡(luò)功能有四大類:大類:InetAddress 、URLs、Sockets、Datagram。1URLs:面向運用層。經(jīng)過:面向運用層。經(jīng)過URL,Java程序可以程序可以直接送出或讀入網(wǎng)絡(luò)上的數(shù)據(jù)。直接送出或讀入網(wǎng)絡(luò)上的數(shù)據(jù)。2InetAddress:面向的是:面向的是IP層。用于標(biāo)識網(wǎng)絡(luò)上層。用于標(biāo)識網(wǎng)絡(luò)上的硬件資源。的硬件資源。3Sockets和和Data
14、gram:面向的那么是傳輸層。:面向的那么是傳輸層。Sockets運用的是運用的是TCP協(xié)議,這是傳統(tǒng)網(wǎng)絡(luò)程序最常用協(xié)議,這是傳統(tǒng)網(wǎng)絡(luò)程序最常用的方式,可以想象為兩個不同的程序經(jīng)過網(wǎng)絡(luò)的通訊的方式,可以想象為兩個不同的程序經(jīng)過網(wǎng)絡(luò)的通訊信道進展通訊。信道進展通訊。Datagram那么運用那么運用UDP協(xié)議,是另一協(xié)議,是另一種網(wǎng)絡(luò)傳輸方式,它把數(shù)據(jù)的目的地記錄在數(shù)據(jù)包中,種網(wǎng)絡(luò)傳輸方式,它把數(shù)據(jù)的目的地記錄在數(shù)據(jù)包中,然后直接放在網(wǎng)絡(luò)上。然后直接放在網(wǎng)絡(luò)上。11.1.5 Java網(wǎng)絡(luò)編程網(wǎng)絡(luò)編程Java網(wǎng)絡(luò)編程中主要運用的網(wǎng)絡(luò)編程中主要運用的java包中的類有:包中的類有:面向面向IP層的類:
15、層的類:InetAddress面向運用層的類:面向運用層的類:URL、URLConnectionTCP協(xié)議相關(guān)類:協(xié)議相關(guān)類:Socket、ServerSocketUDP協(xié)議相關(guān)類:協(xié)議相關(guān)類:DatagramPacket、DatagramSocket、MulticastSocket能夠產(chǎn)生的異常:能夠產(chǎn)生的異常:BindException、ConnectException、MalformedURLException、NoRouteToHostException、ProtocolException、SocketException、UnknownHostException、UnknownServ
16、iceException 無論他是在打、發(fā)送郵件或建立與Internet的銜接,地址是根底。InetAddress 類用來封裝IP地址和該地址的域名。InetAddress類可以用于標(biāo)識網(wǎng)絡(luò)上的硬件資源,它提供了一系列方法以描畫、獲取及運用網(wǎng)絡(luò)資源。每個InetAddress對象包含了IP地址、主機名等信息。InetAddress類沒有構(gòu)造方法,因此不能用new來構(gòu)造一個InetAddress實例。通常是用它提供的靜態(tài)方法來獲取:public static InetAddress getByName(String host)host可以是一個機器名,也可以是一個形如“%d.%d.%d.%d的四
17、個十進制數(shù)的IP地址或一個DSN域名。public static InetAddress getLocalHost()public static InetAddress getAllByName(String host)這三個方法通常會產(chǎn)生UnknownHostException異常,應(yīng)在程序中捕獲處置。InetAddress 類也有一些非靜態(tài)的方法,如本書表11-1所示。 11.2.1 創(chuàng)建創(chuàng)建URL對象對象URL類有以下幾種方式創(chuàng)建類有以下幾種方式創(chuàng)建URL對象:對象:1.URL(String, String, int, String):構(gòu)造一個構(gòu)造一個URL類,第一個類,第一個Strin
18、g類型的參數(shù)是協(xié)議的類型的參數(shù)是協(xié)議的類型,可以是類型,可以是http,ftp,file等。第二個等。第二個String類型參類型參數(shù)是主機名,數(shù)是主機名,int類型參數(shù)是指定端口號,最后一個參類型參數(shù)是指定端口號,最后一個參數(shù)是給出文件名或途徑名。數(shù)是給出文件名或途徑名。2.URL(String, String, String):構(gòu)造一個構(gòu)造一個URL類,參數(shù)含義與上一樣,運用缺省端口類,參數(shù)含義與上一樣,運用缺省端口號。號。3.URL(URL, String):構(gòu)造一個構(gòu)造一個URL類,運用給出的類,運用給出的URL和相對途徑,和相對途徑,String類型參數(shù)是相對途徑。類型參數(shù)是相對途徑
19、。4.URL(String):運用運用URL字符串構(gòu)造一個字符串構(gòu)造一個URL類。類。當(dāng)創(chuàng)建當(dāng)創(chuàng)建URL時發(fā)生錯誤,系統(tǒng)會產(chǎn)生異常時發(fā)生錯誤,系統(tǒng)會產(chǎn)生異常MalformedURLException,這是非運轉(zhuǎn)時異常,必需,這是非運轉(zhuǎn)時異常,必需在程序中捕獲處置。在程序中捕獲處置。 11.2.2 獲取獲取URL對象的屬性對象的屬性一個一個URL對象生成后,其屬性是不能被改動的,但可對象生成后,其屬性是不能被改動的,但可以經(jīng)過它給定的方法來獲取這些屬性:以經(jīng)過它給定的方法來獲取這些屬性:public String getProtocol():獲取該:獲取該URL的協(xié)議名的協(xié)議名public St
20、ring getHost() :獲取該:獲取該URL的主機名的主機名public String getPort() :獲取該:獲取該URL的端口號的端口號public String getPath() :獲取該:獲取該URL的文件途徑的文件途徑public String getFile() :獲取該:獲取該URL的文件名的文件名public String getRef() :獲取該:獲取該URL在文件中的相對在文件中的相對位置位置public String getQuery() :獲取該:獲取該URL的查詢名的查詢名public String toExternalForm():獲取代表:獲取代
21、表URL的字的字符串符串Socket插座通訊屬于網(wǎng)絡(luò)底層通訊。Socket最先運用于Unix操作系統(tǒng),假設(shè)了解Unix系統(tǒng)的輸入/輸出I/O的話,就很容易掌握Socket,由于Socket數(shù)據(jù)傳輸其實就是一種特殊的I/O。在傳統(tǒng)的UNIX環(huán)境下可以操作TCP/IP協(xié)議的接口不止Socket一個,Socket所支持的協(xié)議種類也不光TCP/IP一種,因此兩者之間是沒有必然聯(lián)絡(luò)的。在Java環(huán)境下,Socket編程主要是指基于TCP/IP協(xié)議的網(wǎng)絡(luò)編程。在Java中可以將Socket類和ServerSocket類分別用于Client端和Server端,在恣意兩臺機器間建立銜接。 11.4.1 Soc
22、ket與與ServerSocket類類網(wǎng)絡(luò)上的兩個程序經(jīng)過一個雙向的通訊銜接實現(xiàn)數(shù)據(jù)網(wǎng)絡(luò)上的兩個程序經(jīng)過一個雙向的通訊銜接實現(xiàn)數(shù)據(jù)的交換,這個雙向鏈路的一端稱為一個的交換,這個雙向鏈路的一端稱為一個Socket。Socket通常用來實現(xiàn)客戶方和效力方的銜接。通常用來實現(xiàn)客戶方和效力方的銜接。Socket是是TCP/IP協(xié)議的一個非常流行的編程界面,一個協(xié)議的一個非常流行的編程界面,一個Socket由一個由一個IP地址和一個端口號獨一確定。地址和一個端口號獨一確定。雖然雖然Socket編程是低層次網(wǎng)絡(luò)編程但并不等于它功能編程是低層次網(wǎng)絡(luò)編程但并不等于它功能不強大,恰恰相反,正由于層次低,不強大,
23、恰恰相反,正由于層次低,Socket編程比基編程比基于于URL的網(wǎng)絡(luò)編程提供了更強大的功能和更靈敏的控的網(wǎng)絡(luò)編程提供了更強大的功能和更靈敏的控制,但是卻要更復(fù)雜一些。制,但是卻要更復(fù)雜一些。java在包在包java中提供了兩個類:中提供了兩個類:Socket和和ServerSocket,分別用來表示雙向銜接的客戶端和效力端。這是兩個分別用來表示雙向銜接的客戶端和效力端。這是兩個封裝得非常好的類,運用很方便。封裝得非常好的類,運用很方便。 11.4.2 Socket通訊通訊Socket通常用來實現(xiàn)通常用來實現(xiàn)C/S構(gòu)造。運用構(gòu)造。運用Socket進展進展Client/Server程序設(shè)計的普通銜
24、接過程是這樣的:程序設(shè)計的普通銜接過程是這樣的:Server端端Listen(監(jiān)聽監(jiān)聽)某個端口能否有銜接懇求,某個端口能否有銜接懇求,Client端向端向Server端發(fā)出端發(fā)出Connect(銜接銜接)懇求,懇求,Server端端向向Client端發(fā)回端發(fā)回Accept接受音訊,一個銜接就建接受音訊,一個銜接就建立起來了。立起來了。Server端和端和Client端都可以經(jīng)過端都可以經(jīng)過Send,Write等方法與對方通訊。等方法與對方通訊。進展進展Socket通訊,需求完成三個部分的任務(wù):通訊,需求完成三個部分的任務(wù):1.建立效力器類建立效力器類在效力器端,用在效力器端,用Java中的效
25、力器類中的效力器類ServerSocket,運用端口號作為參數(shù)來創(chuàng)建效力器對象。運用端口號作為參數(shù)來創(chuàng)建效力器對象。例如:例如:ServerSocket server = new ServerSocket(2000)這條語句創(chuàng)建了一個效力器對象,這個效力器運用這條語句創(chuàng)建了一個效力器對象,這個效力器運用2000號端口。當(dāng)一個客戶端程序建立一個號端口。當(dāng)一個客戶端程序建立一個Socket銜接,銜接,所銜接的端口號為所銜接的端口號為2000時,效力器對象時,效力器對象server便呼應(yīng)便呼應(yīng)這個銜接。這個銜接。11.4.2 Socket通訊通訊接下來用接下來用server.accept()方法創(chuàng)建
26、一個方法創(chuàng)建一個Socket對象。效對象。效力器端便可以利用這個力器端便可以利用這個Socket對象與客戶端進展通訊。對象與客戶端進展通訊。例如:例如:Socket incoming = server.accept()緊接著用下面語句得到輸入流和輸出流,并進展封裝:緊接著用下面語句得到輸入流和輸出流,并進展封裝:BufferedReader in =new BufferedReader(new InputStreamReader(incoming.getInputStream();PrintWriter out = new PrintWriter(incoming.getOutputStrea
27、m(),true);隨后,就可以運用隨后,就可以運用in.readLine()方法得到客戶端的輸方法得到客戶端的輸入,也可以運用入,也可以運用out.println()方法向客戶端發(fā)送數(shù)據(jù)。方法向客戶端發(fā)送數(shù)據(jù)。從而可以根據(jù)程序的需求對客戶端的不同懇求進展回從而可以根據(jù)程序的需求對客戶端的不同懇求進展回應(yīng)。應(yīng)。11.4.2 Socket通訊通訊每一個每一個Socket存在時,都將占用一定的資源,在存在時,都將占用一定的資源,在Socket對象運用終了時,要其封鎖。封鎖對象運用終了時,要其封鎖。封鎖Socket可以可以調(diào)用調(diào)用Socket的的Close方法。在封鎖方法。在封鎖Socket之前,應(yīng)
28、之前,應(yīng)將與將與Socket相關(guān)的一切的輸入相關(guān)的一切的輸入/輸出流全部封鎖,以釋輸出流全部封鎖,以釋放一切的資源。而且要留意封鎖的順序,與放一切的資源。而且要留意封鎖的順序,與Socket相相關(guān)的一切的輸入關(guān)的一切的輸入/輸出該首先封鎖,然后再封鎖輸出該首先封鎖,然后再封鎖Socket。例如:例如:in.close();out.close();socket.close();11.4.2 Socket通訊通訊2.建立客戶端代碼建立客戶端代碼相比效力器端,客戶端要簡單一些,客戶端只需用效相比效力器端,客戶端要簡單一些,客戶端只需用效力器所在機器的力器所在機器的IP以及效力器的端口作為參數(shù)創(chuàng)建一以
29、及效力器的端口作為參數(shù)創(chuàng)建一個個Socket對象。得到這個對象后,就可以用前面引見對象。得到這個對象后,就可以用前面引見的方法實現(xiàn)數(shù)據(jù)的輸入和輸出。的方法實現(xiàn)數(shù)據(jù)的輸入和輸出。例如:例如:Socket socket = new Socket(,2000);in = new BufferedReader(new InputStreamReader(socket.getInputStream();out = new PrintWriter(socket.getOutputStream(),true);以上的程序代碼建立了一個以上的程序代碼建立了一個Socket對象,這個對象銜對象,這個對象銜接到接到IP地址為地址為的主機上、端口為的主機上、端口為2000的效的效力器對象,并且建立了輸入流和輸出流,分別對應(yīng)效力器對象,并且建立了輸入流和輸出流,分別對應(yīng)效力器的輸出和客戶端的寫入。力器的輸出和客戶端的寫入。11.4.2 Socket通訊通訊3.建立用戶界面建立用戶界面大家可以利用前面講解的知識,根據(jù)本人的喜好建立大家可以利用前面講解的知識,根據(jù)本人的喜好建立本人的用戶界面。本人的用戶界面。經(jīng)過以上三個步驟,就可以建立一個比較簡單的對話經(jīng)過以上三個步驟,就可以建立一個比較簡單的對話程
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 城鎮(zhèn)電纜安裝施工方案
- 古建筑木構(gòu)造油漆施工方案
- 軟裝陶瓷施工方案
- 薄型防火涂料施工方案
- 初三家長發(fā)言稿
- 月餅項目可行性研究報告
- 水泥砂漿基層防水施工方案
- 徐匯橋下土方外運施工方案
- 畢業(yè)代表發(fā)言稿
- 少代會發(fā)言稿
- “雙減”下初中道德與法治分層作業(yè)設(shè)計研究 論文
- 實驗室CNASCMA內(nèi)部審核檢查表
- 護理學(xué)概述課程
- 2022年常州工業(yè)職業(yè)技術(shù)學(xué)院單招職業(yè)適應(yīng)性測試試題及答案解析
- 第一章《原子結(jié)構(gòu)與性質(zhì)》測試題 高二化學(xué)人教版(2019)選擇性必修2
- GB/T 22080-2016信息技術(shù)安全技術(shù)信息安全管理體系要求
- GB/T 13915-2013沖壓件角度公差
- 蹴球-公開課教學(xué)設(shè)計
- 瑜伽師地論(完美排版全一百卷)
- 主體結(jié)構(gòu)實體檢測方案
- 電焊工培訓(xùn)課件
評論
0/150
提交評論