隨筆 - 312, 文章 - 14, 評(píng)論 - 1393, 引用 - 0
          數(shù)據(jù)加載中……

          網(wǎng)絡(luò)編程

          Java網(wǎng)絡(luò)編程從入門到精通(34):讀寫緩沖區(qū)中的數(shù)據(jù)---使用get和put方法按順序讀寫單個(gè)數(shù)據(jù)
               摘要: 對(duì)于緩沖區(qū)來說,最重要的操作就是讀寫操作。緩沖區(qū)提供了兩種方法來讀寫緩沖區(qū)中的數(shù)據(jù):get、put方法和array方法。而get、put方法可以有三種讀寫數(shù)據(jù)的方式:按順序讀寫單個(gè)數(shù)據(jù)、在指定位置讀寫單個(gè)數(shù)據(jù)和讀寫數(shù)據(jù)塊。除了上述的幾種讀寫數(shù)據(jù)的方法外,CharBuffer類還提供了用于專門寫字符串的put和append方法。在本文及后面的文章中將分別介紹這些讀寫緩沖區(qū)的方法。  閱讀全文

          posted @ 2009-10-09 09:34 銀河使者 閱讀(4880) | 評(píng)論 (1)  編輯

          Java網(wǎng)絡(luò)編程從入門到精通(33):非阻塞I/O的緩沖區(qū)(Buffer)
               摘要: 如果將同步I/O方式下的數(shù)據(jù)傳輸比做數(shù)據(jù)傳輸?shù)牧阈欠绞剑ㄟ@里的零星是指在數(shù)據(jù)傳輸?shù)倪^程中是以零星的字節(jié)方式進(jìn)行的),那么就可以將非阻塞I/O方式下的數(shù)據(jù)傳輸比做數(shù)據(jù)傳輸?shù)募b箱方式(在字節(jié)和低層數(shù)據(jù)傳輸之間,多了一層緩沖區(qū),因此,可以將緩沖區(qū)看做是裝載字節(jié)的集裝箱)。大家可以想象,如果我們要運(yùn)送比較少的貨物,用集裝箱好象有點(diǎn)不太合算,而如果要運(yùn)送上百噸的貨物,用集裝箱來運(yùn)送的成本會(huì)更低。在數(shù)據(jù)傳輸過程中也是一樣,如果數(shù)據(jù)量很小時(shí),使用同步I/O方式會(huì)更適合,如果數(shù)據(jù)量很大時(shí)(一般以G為單位),使用非阻塞I/O方式的效率會(huì)更高。因此,從理論上說,數(shù)據(jù)量越大,使用非阻塞I/O方式的單位成本就會(huì)越低。產(chǎn)生這種結(jié)果的原因和緩沖區(qū)的一些特性有著直接的關(guān)系。在本節(jié)中,將對(duì)緩沖區(qū)的一些主要特性進(jìn)行講解,使讀者可以充分理解緩沖區(qū)的概念,并能通過緩沖區(qū)來提高程序的執(zhí)行效率。  閱讀全文

          posted @ 2009-08-31 08:49 銀河使者 閱讀(3227) | 評(píng)論 (0)  編輯

          Java網(wǎng)絡(luò)編程從入門到精通(32):一個(gè)非阻塞I/O的例子
               摘要: 為了使讀者更好地理解非阻塞I/O,本節(jié)給出了一個(gè)簡單的例子用來演示如何將非阻塞I/O應(yīng)用到網(wǎng)絡(luò)程序中。讀者可以先不必管這個(gè)例子的具體細(xì)節(jié)。因?yàn)檫@個(gè)例子的主要目的并不是講解非阻塞I/O的使用,而是先讓讀者對(duì)非阻塞I/O有一個(gè)籠統(tǒng)的感性認(rèn)識(shí)。在看完這個(gè)例子后,讀者可能會(huì)有很多疑問,在本章后面的部分將會(huì)逐漸揭開這些迷團(tuán)。這個(gè)例子的主要功能是訪問新浪網(wǎng),并將新浪網(wǎng)的首頁在控制臺(tái)上輸出。  閱讀全文

          posted @ 2009-08-21 09:08 銀河使者 閱讀(3038) | 評(píng)論 (3)  編輯

          Java網(wǎng)絡(luò)編程從入門到精通(31):非阻塞I/O簡介
               摘要: 在網(wǎng)絡(luò)應(yīng)用中,一般可以采用同步I/O(阻塞I/O)和非阻塞I/O兩種方式進(jìn)行數(shù)據(jù)通訊。這兩種方式并非互相排斥和互相取代。我們可以在平時(shí)的應(yīng)用中單獨(dú)采用其中一種通訊方式,也可以混合使用這兩種通訊方式。在本文中就什么是非阻塞I/O以及為什么要使用這種通訊方式進(jìn)行了介紹,在下一篇文章中給出了一個(gè)簡單的例子來演示在網(wǎng)絡(luò)應(yīng)用中如何使用非阻塞I/O進(jìn)行通訊。  閱讀全文

          posted @ 2009-08-16 10:46 銀河使者 閱讀(3134) | 評(píng)論 (2)  編輯

          Java網(wǎng)絡(luò)編程從入門到精通(30):定制accept方法
               摘要: 使用ServerSocket類的implAccept方法可以使用accept方法返回一個(gè)Socket子類對(duì)象。但implAccept是protected方法,因此,必須在ServerSocket類的子類中覆蓋accept方法,然后在accept方法中使用implAccept方法重新設(shè)置Socket對(duì)象。  閱讀全文

          posted @ 2009-08-15 16:57 銀河使者 閱讀(2864) | 評(píng)論 (4)  編輯

          Java網(wǎng)絡(luò)編程從入門到精通(29):服務(wù)端Socket的選項(xiàng)
               摘要: ServerSocket類有以下三個(gè)選項(xiàng):

          1. SO_TIMEOUT: 設(shè)置accept方法的超時(shí)時(shí)間。

          2. SO_REUSEADDR:設(shè)置服務(wù)端同一個(gè)端口是否可以多次綁定。

          3. SO_RECBUF:設(shè)置接收緩沖區(qū)的大小。  閱讀全文

          posted @ 2009-08-12 14:50 銀河使者 閱讀(3210) | 評(píng)論 (1)  編輯

          Java網(wǎng)絡(luò)編程從入門到精通(28):獲取ServerSocket信息的方法及FTP原理
               摘要: 本文介紹了如何通過getLocalPort、getInetAddress和getLocalSocketAddress方法獲得服務(wù)端的信息,以及FTP的兩種模式:主動(dòng)模式和被動(dòng)模式,及其原理。  閱讀全文

          posted @ 2009-08-12 14:27 銀河使者 閱讀(4803) | 評(píng)論 (1)  編輯

          Java網(wǎng)絡(luò)編程從入門到精通(27):關(guān)閉服務(wù)端連接
               摘要: 在客戶端和服務(wù)端的數(shù)據(jù)交互完成后,一般需要關(guān)閉網(wǎng)絡(luò)連接。對(duì)于服務(wù)端來說,需要關(guān)閉Socket和ServerSocket。在關(guān)閉Socket后,客戶端并不會(huì)馬上感知自已的Socket已經(jīng)關(guān)閉,也就是說,在服務(wù)端的Socket關(guān)閉后,客戶端的Socket的isClosed和isConnected方法仍然會(huì)分別得到false和true。但對(duì)已關(guān)閉的Socket的輸入輸出流進(jìn)行操作會(huì)拋出一個(gè)SocketException異常。  閱讀全文

          posted @ 2009-08-04 09:26 銀河使者 閱讀(3711) | 評(píng)論 (3)  編輯

          Java網(wǎng)絡(luò)編程從入門到精通(26):在服務(wù)端接收和發(fā)送數(shù)據(jù)
               摘要: 在建立完ServerSocket對(duì)象后,通過accept方法返回的Socket對(duì)象,服務(wù)端就可以和客戶端進(jìn)行數(shù)據(jù)交互。Socket類和ServerSocket類都有兩個(gè)得到輸入輸出流的方法:getInputStream和getOutputStream。對(duì)于Socket類而言,使用getInputStream方法得到的InputStream是從服務(wù)端獲取數(shù)據(jù),而getOutputStream方法得到的OutputStream是向服務(wù)端發(fā)送數(shù)據(jù)。而ServerSocket的getInputStream和getOutputStream方法也類似。InputStream從客戶端讀取數(shù)據(jù),OutputStream向客戶端發(fā)送數(shù)據(jù)。  閱讀全文

          posted @ 2009-07-20 13:53 銀河使者 閱讀(3035) | 評(píng)論 (2)  編輯

          Java網(wǎng)絡(luò)編程從入門到精通(25):創(chuàng)建ServerSocket對(duì)象
               摘要: ServerSocket類的構(gòu)造方法有四種重載形式,它們的定義如下:
          public ServerSocket() throws IOException
          public ServerSocket(int port) throws IOException
          public ServerSocket(int port, int backlog) throws IOException
          public ServerSocket(int port, int backlog, InetAddress bindAddr) throws IOException

          在上面的構(gòu)造方法中涉及到了三個(gè)參數(shù):port、backlog和bindAddr。其中port是ServerSocket對(duì)象要綁定的端口,backlog是請(qǐng)求隊(duì)列的長度,bindAddr是ServerSocket對(duì)象要綁定的IP地址。  閱讀全文

          posted @ 2009-07-12 19:40 銀河使者 閱讀(3774) | 評(píng)論 (2)  編輯

          Java網(wǎng)絡(luò)編程從入門到精通(24):實(shí)現(xiàn)HTTP斷點(diǎn)續(xù)傳下載工具(附源代碼)
               摘要: 在前面的文章曾討論了HTTP消息頭的三個(gè)和斷點(diǎn)繼傳有關(guān)的字段。一個(gè)是請(qǐng)求消息的字段Range,另兩個(gè)是響應(yīng)消息字段Accept-Ranges和Content-Range。其中Accept-Ranges用來斷定Web服務(wù)器是否支持?jǐn)帱c(diǎn)繼傳功能。在這里為了演示如何實(shí)現(xiàn)斷點(diǎn)繼傳功能,假設(shè)Web服務(wù)器支持這個(gè)功能;因此,我們只使用Range和Content-Range來完成一個(gè)斷點(diǎn)繼傳工具的開發(fā)。  閱讀全文

          posted @ 2009-07-02 18:11 銀河使者 閱讀(4735) | 評(píng)論 (2)  編輯

          Java網(wǎng)絡(luò)編程從入門到精通(23):HTTP消息頭字段
               摘要: 本文介紹了HTTP消息的學(xué)用頭字段的功能和用法,如Host、Connection、Range、Date、Content-Length等,本文的需要使用HTTP模擬器進(jìn)行測試,該模擬器請(qǐng)從如下地址下載:http://files.cnblogs.com/nokiaguy/HttpSimulator.rar  閱讀全文

          posted @ 2009-06-23 13:04 銀河使者 閱讀(3221) | 評(píng)論 (0)  編輯

          Java網(wǎng)絡(luò)編程從入門到精通(22):實(shí)現(xiàn)HTTP模擬器
               摘要: 在討論HTTP協(xié)議的具體請(qǐng)求和響應(yīng)頭字段之前,讓我們先來利用以前所學(xué)的知識(shí)來實(shí)現(xiàn)一個(gè)HTTP模擬器。所謂HTTP模擬器就是可以在用戶輸入HTTP的請(qǐng)求消息后,由這個(gè)模擬器將HTTP請(qǐng)求發(fā)送給相應(yīng)的服務(wù)器,再接收服務(wù)器的響應(yīng)消息。這個(gè)HTTP模擬器有幾下特點(diǎn):

          1. 可以手工輸入HTTP請(qǐng)求,并向服務(wù)器發(fā)送。

          2. 接收服務(wù)器的響應(yīng)消息。

          3. 消息頭和實(shí)體內(nèi)容分段顯示,也就是說,并不是象Telnet等客戶端一樣將HTTP響

          應(yīng)消息全部顯示,而是先顯示消息頭,然后由用戶決定是否顯示實(shí)體內(nèi)容。

          4. 集中發(fā)送請(qǐng)求。這個(gè)HTTP模擬器和Telnet不同的是,并不是一開始就連接服務(wù)器,而是將域名、端口以及HTTP請(qǐng)求消息都輸完后,才連接服務(wù)器,并將這些請(qǐng)求發(fā)送給服務(wù)器。這樣做的可以預(yù)防服務(wù)器提前關(guān)閉網(wǎng)絡(luò)連接的現(xiàn)象。

          5. 可以循環(huán)做上述的操作。
            閱讀全文

          posted @ 2009-06-09 12:16 銀河使者 閱讀(4675) | 評(píng)論 (11)  編輯

          Java網(wǎng)絡(luò)編程從入門到精通(21):HTTP消息的格式
               摘要: 當(dāng)用戶在瀏覽器中輸入一個(gè)基于HTTP協(xié)議的URL時(shí)(以http://開頭的URL),就相當(dāng)于通知器按著這個(gè)URL組織生成一個(gè)HTTP請(qǐng)求,并交過個(gè)請(qǐng)求發(fā)送到服務(wù)器;同時(shí),等待服務(wù)器的響應(yīng)。無論是請(qǐng)求還是響應(yīng),都統(tǒng)稱為HTTP消息。  閱讀全文

          posted @ 2009-06-08 17:22 銀河使者 閱讀(3938) | 評(píng)論 (3)  編輯

          Java網(wǎng)絡(luò)編程從入門到精通(20):HTTP協(xié)議簡介
               摘要: HTTP協(xié)議是一種應(yīng)用層協(xié)議,HTTP是HyperText Transfer Protocol(超文本傳輸協(xié)議)的英文縮寫。HTTP可以通過傳輸層的TCP協(xié)議在客戶端和服務(wù)器之間傳輸數(shù)據(jù)。HTTP協(xié)議主要用于Web瀏覽器和 Web服務(wù)器之間的數(shù)據(jù)交換。我們?cè)谑褂肐E或Firefox瀏覽網(wǎng)頁或下載Web資源時(shí),通過在地址欄中輸入http://host:port /path,開頭的4個(gè)字母http就相當(dāng)于通知瀏覽器使用HTTP協(xié)議來和host所確定的服務(wù)器進(jìn)行通訊。  閱讀全文

          posted @ 2009-06-07 09:38 銀河使者 閱讀(4619) | 評(píng)論 (2)  編輯

          Java網(wǎng)絡(luò)編程從入門到精通(19):套接字(Socket)的異常
               摘要: 在Socket 類中有很多方法在聲明時(shí)使用throws拋出了一些異常,這些異常都是IOException的子類。在Socket類的方法中拋出最多的就是 SocketException,其余還有七個(gè)異常可供Socket類的方法拋出。這些異常的繼承關(guān)系如圖1所示。其中灰色背景框所描述的例外就是 Socket類的方法可能拋出的異常。  閱讀全文

          posted @ 2009-06-02 08:19 銀河使者 閱讀(3255) | 評(píng)論 (2)  編輯

          Java網(wǎng)絡(luò)編程從入門到精通(18):Socket類的getter和setter方法(2)
               摘要: 在Java類中,getter和setter方法占了很大的比重。由于Java中沒有定義屬性的關(guān)鍵字;因此,getter和setter方法用于獲得和設(shè)置Java類的屬性值;如getName和setName方法用于設(shè)置name屬性的值。如果某個(gè)屬性只有g(shù)etter方法,那這個(gè)屬性是只讀的;如果只有setter方法,那么這個(gè)屬性是只寫的。在Socket類中也有很多這樣的屬性來獲得和Socket相關(guān)的信息,以及對(duì)Socket對(duì)象的狀態(tài)進(jìn)行設(shè)置。  閱讀全文

          posted @ 2009-06-01 17:31 銀河使者 閱讀(3743) | 評(píng)論 (0)  編輯

          Java網(wǎng)絡(luò)編程從入門到精通(17):Socket類的getter和setter方法(1)
               摘要: 在Java類中,getter和setter方法占了很大的比重。由于Java中沒有定義屬性的關(guān)鍵字;因此,getter和setter方法用于獲得和設(shè)置Java類的屬性值;如getName和setName方法用于設(shè)置name屬性的值。如果某個(gè)屬性只有g(shù)etter方法,那這個(gè)屬性是只讀的;如果只有setter方法,那么這個(gè)屬性是只寫的。在Socket類中也有很多這樣的屬性來獲得和Socket相關(guān)的信息,以及對(duì)Socket對(duì)象的狀態(tài)進(jìn)行設(shè)置。  閱讀全文

          posted @ 2009-05-29 09:43 銀河使者 閱讀(4782) | 評(píng)論 (3)  編輯

          Java網(wǎng)絡(luò)編程從入門到精通(16):客戶端套接字(Socket)的超時(shí)
               摘要: 客戶端套接字的超時(shí)(timeout)就是指在客戶端通過Socket和服務(wù)器進(jìn)行通訊的過程中,由于網(wǎng)絡(luò)延遲,網(wǎng)絡(luò)阻塞等原因,造成服務(wù)器并未及時(shí)響應(yīng)客戶端的一種現(xiàn)象。在一段時(shí)間后,客戶端由于未收到服務(wù)端的響應(yīng)而拋出一個(gè)超時(shí)錯(cuò)誤; 其中客戶端所等待的時(shí)間就是超時(shí)時(shí)間。由于生產(chǎn)超時(shí)錯(cuò)誤的一端都是被動(dòng)端;也就是說,這一端是在接收數(shù)據(jù),而不是發(fā)送數(shù)據(jù)。對(duì)于客戶端Socket來說,只有兩個(gè)地方是在接收數(shù)據(jù);一個(gè)是在連接服務(wù)器時(shí);另一個(gè)是在連接服務(wù)器成功后,接收服務(wù)器發(fā)過來的數(shù)據(jù)時(shí)。因此,客戶端超時(shí)也分為兩種類型:連接超時(shí)和讀取數(shù)據(jù)超時(shí)。  閱讀全文

          posted @ 2009-05-26 08:48 銀河使者 閱讀(3911) | 評(píng)論 (0)  編輯

          Java網(wǎng)絡(luò)編程從入門到精通(15):為什么要使用SocketAddress來管理網(wǎng)絡(luò)地址
               摘要: 在使用Socket來連接服務(wù)器時(shí)最簡單的方式就是直接使用IP和端口,但Socket類中的connect方法并未提供這種方式,而是使用 SocketAddress類來向connect方法傳遞服務(wù)器的IP和端口。雖然這種方式從表面上看要麻煩一些,但它會(huì)給我們帶來另外一個(gè)好處,那就是網(wǎng)絡(luò)地址的重用。  閱讀全文

          posted @ 2009-05-22 09:02 銀河使者 閱讀(12546) | 評(píng)論 (0)  編輯

          Java網(wǎng)絡(luò)編程從入門到精通(14):多種多樣的建立網(wǎng)絡(luò)連接的方式
               摘要: 在上一篇文章中我們討論了Socket類的基本用法,并給出的例子中使用Socket類連接服務(wù)器時(shí)使用了一種最簡單的連接方式,也就是通過IP和端口號(hào)來連接服務(wù)器。而為了使連接服務(wù)器的方式更靈活,Socket類不僅可以通過自身的構(gòu)造方法連接服務(wù)器,而且也可以通過connect方法來連接數(shù)據(jù)庫。  閱讀全文

          posted @ 2009-05-18 09:01 銀河使者 閱讀(4220) | 評(píng)論 (2)  編輯

          Java網(wǎng)絡(luò)編程從入門到精通(13):使用Socket類接收和發(fā)送數(shù)據(jù)
               摘要: 網(wǎng)絡(luò)應(yīng)用分為客戶端和服務(wù)端兩部分,而Socket類是負(fù)責(zé)處理客戶端通信的Java類。通過這個(gè)類可以連接到指定IP或域名的服務(wù)器上,并且可以和服務(wù)器互相發(fā)送和接受數(shù)據(jù)。在本文及后面的數(shù)篇文章中將詳細(xì)討論Socket類的使用,內(nèi)容包括Socket類基礎(chǔ)、各式各樣的連接方式、get和set方法、連接過程中的超時(shí)以及關(guān)閉網(wǎng)絡(luò)連接等。  閱讀全文

          posted @ 2009-05-14 10:21 銀河使者 閱讀(9240) | 評(píng)論 (3)  編輯

          Java網(wǎng)絡(luò)編程從入門到精通(12):使用isReachable方法探測主機(jī)是否可以連通
               摘要: 在J2SE5.0中的InetAddress類中增加了一個(gè)isReachable方法。可以使用這個(gè)方法來探測主機(jī)是否可以連通。  閱讀全文

          posted @ 2009-05-08 09:00 銀河使者 閱讀(4630) | 評(píng)論 (0)  編輯

          Java網(wǎng)絡(luò)編程從入門到精通(11):使用NetworkInterface類獲得網(wǎng)絡(luò)接口信息
               摘要: 從JDK1.4開始,Java提供了一個(gè)NetworkInterface類。這個(gè)類可以得到本機(jī)所有的物理網(wǎng)絡(luò)接口和虛擬機(jī)等軟件利用本機(jī)的物理網(wǎng)絡(luò)接口創(chuàng)建的邏輯網(wǎng)絡(luò)接口的信息。  閱讀全文

          posted @ 2009-05-08 08:53 銀河使者 閱讀(10282) | 評(píng)論 (9)  編輯

          Java網(wǎng)絡(luò)編程從入門到精通(10):Inet4Address類和Inet6Address類
               摘要: 為了區(qū)分IPv4和IPv6地址,Java提供了兩個(gè)類:Inet4Address和Inet6Address,它們都是InetAddress類的子類,這兩個(gè)類分別按著IPv4和IPv6的規(guī)則實(shí)現(xiàn)了InetAddress類中的public方法。它們所不同的是Inet6Address類比Inet4Address類多了一個(gè)方法:isIPv4CompatibleAddress,這個(gè)方法用來判斷一個(gè)IPv6地址是否和IPv4地址兼容。和IPv4兼容的IPv6地址除了最后四個(gè)字節(jié)有值名,其他的字節(jié)都是0,如0:0:0:0:0:0.192.168.18.10、::ABCD:FAFA都是和IPv4兼容的IPv6地址。  閱讀全文

          posted @ 2009-05-04 19:13 銀河使者 閱讀(5972) | 評(píng)論 (0)  編輯

          Java網(wǎng)絡(luò)編程從入門到精通 (9):使用isXxx方法判斷地址類型
               摘要: IP地址分為普通地址和特殊地址。在前面的文章中所使用的大多數(shù)都是普通的IP地址,在本文中將介紹如何利用InetAddress類提供的十個(gè)方法來確定一個(gè)IP地址是否是一個(gè)特殊的IP地址。  閱讀全文

          posted @ 2009-04-26 18:07 銀河使者 閱讀(4887) | 評(píng)論 (2)  編輯

          Java網(wǎng)絡(luò)編程從入門到精通(8):用getAddress方法獲得IP地址
               摘要: getAddress方法和getHostAddress類似,它們的唯一區(qū)別是getHostAddress方法返回的是字符串形式的IP地址,而getAddress方法返回的是byte數(shù)組形式的IP地址。getAddress方法的定義是public byte[] getAddress()。這個(gè)方法返回的byte數(shù)組是有符號(hào)的。在Java中byte類型的取值范圍是-128?127。如果返回的IP地址的某個(gè)字節(jié)是大于127的整數(shù),在byte數(shù)組中就是負(fù)數(shù)。由于Java中沒有無符號(hào)byte類型,因此,要想顯示正常的IP地址,必須使用int或long類型。  閱讀全文

          posted @ 2009-04-21 12:41 銀河使者 閱讀(5250) | 評(píng)論 (0)  編輯

          Java網(wǎng)絡(luò)編程從入門到精通(7):用getHostAddress方法獲得IP地址
               摘要: getHotAddress方法用來得到主機(jī)的IP地址,這個(gè)IP地址可能是IPv4的地址,也可能是IPv6的地址。getHostAddress方法的定義是public String getHostAddress()無論InetAddress對(duì)象是使用哪種方式創(chuàng)建的,getHostAddress方法都不會(huì)訪問DNS服務(wù)器。如果想訪問使用IPv6地址的遠(yuǎn)程主機(jī),需要在操作系統(tǒng)上安裝IPv6協(xié)議。  閱讀全文

          posted @ 2009-04-21 12:33 銀河使者 閱讀(6496) | 評(píng)論 (0)  編輯

          Java網(wǎng)絡(luò)編程從入門到精通(6):使用getCanonicalHostName方法獲得主機(jī)名
               摘要: getCanonicalHostName方法和getHostName方法一樣,也是得到遠(yuǎn)程主機(jī)的域名。但它們有一個(gè)區(qū)別。getCanonicalHostName得到的是主機(jī)名,而getHostName得到的主機(jī)別名。在訪問某些域名時(shí),getCanonicalHostName方法和getHostName方法的返回值是一樣的,這和DNS服務(wù)器如何解釋主機(jī)名和主機(jī)別名以及它們的設(shè)置有關(guān)。如通過www.ibm.com創(chuàng)建InetAddress對(duì)象后,使用getCanonicalHostName方法和getHostName方法返回的結(jié)果都是www.ibm.com(有時(shí)直接返回IP地址,這可能和IBM的DNS服務(wù)器的處理機(jī)制有關(guān))。如果DNS不允許通過IP地址得到域名,那么這兩個(gè)方法就會(huì)返回IP地址來代替域名。
            閱讀全文

          posted @ 2009-04-14 08:56 銀河使者 閱讀(6586) | 評(píng)論 (0)  編輯

          Java網(wǎng)絡(luò)編程從入門到精通(5):使用InetAddress類的getHostName方法獲得域名
               摘要: getHostName方法可以得到遠(yuǎn)程主機(jī)的域名,也可以得到本機(jī)名。getHostName方法的定義是public String getHostName(),勻樣可以使用三種方法創(chuàng)建InetAddress對(duì)象,這三種方法為:1.使用getLocalHost方法創(chuàng)建InetAddress對(duì)象。2.使用域名創(chuàng)建InetAddress對(duì)象。3. 使用IP地址創(chuàng)建InetAddress對(duì)象
            閱讀全文

          posted @ 2009-04-14 08:42 銀河使者 閱讀(5075) | 評(píng)論 (0)  編輯

          Java網(wǎng)絡(luò)編程從入門到精通(4):DNS緩存
               摘要: 在通過DNS查找域名的過程中,可能會(huì)經(jīng)過多臺(tái)中間DNS服務(wù)器才能找到指定的域名,因此,在DNS服務(wù)器上查找域名是非常昂貴的操作。在Java中為了緩解這個(gè)問題,提供了DNS緩存。當(dāng)InetAddress類第一次使用某個(gè)域名(如www.csdn.net)創(chuàng)建InetAddress對(duì)象后,JVM就會(huì)將這個(gè)域名和它從DNS上獲得的信息(如IP地址)都保存在DNS緩存中。當(dāng)下一次InetAddress類再使用這個(gè)域名時(shí),就直接從DNS緩存里獲得所需的信息,而無需再訪問DNS服務(wù)器。  閱讀全文

          posted @ 2009-04-06 21:06 銀河使者 閱讀(4876) | 評(píng)論 (2)  編輯

          Java網(wǎng)絡(luò)編程從入門到精通(3):為什么不能直接通過IP訪問網(wǎng)站
               摘要: 在《創(chuàng)建InetAddress對(duì)象的四個(gè)靜態(tài)方法》一文中通過getAllByName得到了www.csdn.net對(duì)應(yīng)的四個(gè)IP地址。從理論上說,在IE(或其他的Web瀏覽器,如Firefox)的地址欄中輸入這四個(gè)IP地址中的任何一個(gè),都可能訪問www.csdn.net。如輸入http://211.100.26.124。但I(xiàn)E卻返回了一個(gè)錯(cuò)誤信息。在輸入另外三個(gè)IP后,都會(huì)得到同樣的錯(cuò)誤信息。  閱讀全文

          posted @ 2009-03-31 10:44 銀河使者 閱讀(4390) | 評(píng)論 (6)  編輯

          Java網(wǎng)絡(luò)編程從入門到精通(2):創(chuàng)建InetAddress對(duì)象的四個(gè)靜態(tài)方法
               摘要: InetAddress類是Java中用于描述IP地址的類。它在java.net包中。在Java中分別用Inet4Address和Inet6Address類來描述IPv4和IPv6的地址。這兩個(gè)類都是InetAddress的子類。由于InetAddress沒有public的構(gòu)造方法,因此,要想創(chuàng)建InetAddress對(duì)象,必須得依靠它的四個(gè)靜態(tài)方法。InetAddress可以通過getLocalHost方法得到本機(jī)的InetAddress對(duì)象,也可以通過getByName、getAllByName和getByAddress得到遠(yuǎn)程主機(jī)的InetAddress對(duì)象。  閱讀全文

          posted @ 2009-03-31 10:35 銀河使者 閱讀(5359) | 評(píng)論 (1)  編輯

          Java網(wǎng)絡(luò)編程從入門到精通(1):Internet地址概述
               摘要: 所有連入Internet的終端設(shè)備(包括計(jì)算機(jī)、PDA、打印機(jī)以及其他的電子設(shè)備)都有一個(gè)唯一的索引,這個(gè)索引被稱為IP地址。現(xiàn)在Internet上的IP地址大多由四個(gè)字節(jié)組成,這種IP地址叫做IPv4。除了這種由四個(gè)字節(jié)組成的IP,在Internet上還存在一種IP,這種IP由16個(gè)字節(jié)組成,叫做IPv6。IPv4和IPv6后面的數(shù)字是Internet協(xié)議(Internet Protocol,IP)的版本號(hào)。
            閱讀全文

          posted @ 2009-03-23 21:03 銀河使者 閱讀(6137) | 評(píng)論 (2)  編輯

          主站蜘蛛池模板: 策勒县| 双鸭山市| 米泉市| 临泉县| 昌乐县| 饶河县| 静海县| 威海市| 兴义市| 富平县| 克山县| 九江市| 汉川市| 化州市| 盐亭县| 田林县| 广州市| 含山县| 榆社县| 若尔盖县| 甘孜县| 滕州市| 安平县| 云阳县| 厦门市| 阿拉善盟| 阿勒泰市| 陈巴尔虎旗| 吴川市| 博湖县| 原阳县| 秦皇岛市| 海丰县| 本溪| 二连浩特市| 黔江区| 喀什市| 洛扎县| 高碑店市| 永康市| 安图县|