<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    隨筆 - 312, 文章 - 14, 評論 - 1393, 引用 - 0
    數據加載中……

    網絡編程

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

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

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

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

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

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

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

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

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

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

    Java網絡編程從入門到精通(29):服務端Socket的選項
         摘要: ServerSocket類有以下三個選項:

    1. SO_TIMEOUT: 設置accept方法的超時時間。

    2. SO_REUSEADDR:設置服務端同一個端口是否可以多次綁定。

    3. SO_RECBUF:設置接收緩沖區的大小。  閱讀全文

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

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

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

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

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

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

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

    Java網絡編程從入門到精通(25):創建ServerSocket對象
         摘要: ServerSocket類的構造方法有四種重載形式,它們的定義如下:
    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

    在上面的構造方法中涉及到了三個參數:port、backlog和bindAddr。其中port是ServerSocket對象要綁定的端口,backlog是請求隊列的長度,bindAddr是ServerSocket對象要綁定的IP地址。  閱讀全文

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

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

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

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

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

    Java網絡編程從入門到精通(22):實現HTTP模擬器
         摘要: 在討論HTTP協議的具體請求和響應頭字段之前,讓我們先來利用以前所學的知識來實現一個HTTP模擬器。所謂HTTP模擬器就是可以在用戶輸入HTTP的請求消息后,由這個模擬器將HTTP請求發送給相應的服務器,再接收服務器的響應消息。這個HTTP模擬器有幾下特點:

    1. 可以手工輸入HTTP請求,并向服務器發送。

    2. 接收服務器的響應消息。

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

    應消息全部顯示,而是先顯示消息頭,然后由用戶決定是否顯示實體內容。

    4. 集中發送請求。這個HTTP模擬器和Telnet不同的是,并不是一開始就連接服務器,而是將域名、端口以及HTTP請求消息都輸完后,才連接服務器,并將這些請求發送給服務器。這樣做的可以預防服務器提前關閉網絡連接的現象。

    5. 可以循環做上述的操作。
      閱讀全文

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    主站蜘蛛池模板: 在线永久免费的视频草莓| 亚洲欧洲日本天天堂在线观看| 黄页网站在线看免费| 中文字字幕在线高清免费电影| 亚洲AV永久无码精品网站在线观看| 亚洲一区二区影院| 久久亚洲精品中文字幕三区| 日韩精品无码人妻免费视频| 99久久这里只精品国产免费| 日韩精品久久久久久免费| 两个人看www免费视频| 日韩少妇内射免费播放| 白白色免费在线视频| 亚洲日韩看片无码电影| 亚洲一级毛片中文字幕| 久久久久亚洲AV无码永不| 亚洲av永久无码精品网站 | 亚洲色偷偷av男人的天堂| 久久久久国产亚洲AV麻豆| 全黄a免费一级毛片人人爱| 成在人线AV无码免费| 国产精品69白浆在线观看免费 | 国产成人无码综合亚洲日韩| 久久精品国产亚洲一区二区三区| 深夜国产福利99亚洲视频| 日本最新免费不卡二区在线| 四虎影院免费在线播放| 天天干在线免费视频| 成年性生交大片免费看| 成年男女男精品免费视频网站| 中文字幕无码免费久久99| 免费可以看黄的视频s色| 2020久久精品国产免费| 日韩精品无码区免费专区| 最近中文字幕无吗免费高清| 中国在线观看免费高清完整版| 99在线视频免费观看视频| 妞干网免费观看视频| 国产精品久久免费视频| 免费成人午夜视频| 久久99亚洲综合精品首页|