程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> JAVA編程入門知識 >> Java Socket編程

Java Socket編程

編輯:JAVA編程入門知識
  
  1.Socket傳輸模式
  
  Sockets有兩種主要的操作方式:面向連接的和無連接的。面向連接的sockets操作就像一部電話,他們必須建立一個連接和一人呼叫。所有的事情在到達時的順序與它們出發時的順序時一樣。 <!-- frame contents --> <!-- /frame contents --> 無連接的sockets操作就像是一個郵件投遞,沒有什麼保證,多個郵件可能在到達時的順序與出發時的順序不一樣。
  
  到底用哪種模式是郵應用程序的需要決定的。假如可靠性更重要的話,用面向連接的操作會好一些.比如文件服務器需要他們的數據的正確性和有序性.假如一些數據丟失了,系統的有效性將會失去。一些服務器,比如間歇性地發送一些數據塊.假如數據丟了的話,服務器並不想要再重新發過一次,因為當數據到達的時候,它可能已經過時了.確保數據的有序性和正確性需要額外的操作的內存消耗,額外的費用將會降低系統的回應速率.
  
  無連接的操作使用數據報協議.一個數據報是一個獨立的單元,它包含了所有的這次投遞的信息.把它想象成一個信封吧,它有目的地址和要發送的內容.這個模式下的socket不需要連接一個目的的socket,它只是簡單地投出數據報.無連接的操作是快速的和高效的,但是數據安全性不佳.
  
  面向連接的操作使用TCP協議.一個這個模式下的socket必須在發送數據之前與目的地的socket取得一個連接.一旦連接建立了,sockets就可以使用一個流接口:打開-讀-寫-關閉.所有的發送的信息都會在另一端以同樣的順序被接收.面向連接的操作比無連接的操作效率更低,但是數據的安全性更高.
  
  SUN一直是網絡建設的支持者,所以在Java中支持sockets就不足為奇了.實際上,Java降低了建立一個sockets程序的難度.每一個傳輸模式都被封裝到了不同的類中.面向連接的類將會首先被我們討論.
  
  到底用哪種模式是郵應用程序的需要決定的.假如可靠性更重要的話,用面向連接的操作會好一些.比如文件服務器需要他們的數據的正確性和有序性.假如一些數據丟失了,系統的有效性將會失去.一些服務器,比如間歇性地發送一些數據塊.假如數據丟了的話,服務器並不想要再重新發過一次.因為當數據到達的時候,它可能已經過時了.確保數據的有序性和正確性需要額外的操作的內存消耗,額外的費用將會降低系統的回應速率.
  
  無連接的操作使用數據報協議.一個數據報是一個獨立的單元,它包含了所有的這次投遞的信息.把它想象成一個信封吧,它有目的地址和要發送的內容.這個模式下的socket不需要連接一個目的的socket,它只是簡單地投出數據報.無連接的操作是快速的和高效的,但是數據安全性不佳.
  
  面向連接的操作使用TCP協議.一個這個模式下的socket必須在發送數據之前與目的地的socket取得一個連接.一旦連接建立了,sockets就可以使用一個流接口:打開-讀-寫-關閉.所有的發送的信息都會在另一端以同樣的順序被接收.面向連接的操作比無連接的操作效率更低,但是數據的安全性更高.
  
  SUN一直是網絡建設的支持者,所以在Java中支持sockets就不足為奇了.實際上,Java降低了建立一個sockets程序的難度.每一個傳輸模式都被封裝到了不同的類中.面向連接的類將會首先被我們討論   
  2.Java面向連接的類
  
  Sockets有兩種主要的操作方式:面向連接的和無連接的.面向連接的sockets操作就像一部電話,他們必須建立一個連接和一人呼叫.所有的事情在到達時的順序與它們出發時的順序時一樣.無連接的sockets操作就像是一個郵件投遞,,沒有什麼保證,多個郵件可能在到達時的順序與出發時的順序不一樣.
  
  到底用哪種模式是郵應用程序的需要決定的.假如可靠性更重要的話,用面向連接的操作會好一些.比如文件服務器需要他們的數據的正確性和有序性.假如一些數據丟失了,系統的有效性將會失去.一些服務器,比如間歇性地發送一些數據塊.假如數據丟了的話,服務器並不想要再重新發過一次.因為當數據到達的時候,它可能已經過時了.確保數據的有序性和正確性需要額外的操作的內存消耗,額外的費用將會降低系統的回應速率.
  
  無連接的操作使用數據報協議.一個數據報是一個獨立的單元,它包含了所有的這次投遞的信息.把它想象成一個信封吧,它有目的地址和要發送的內容.這個模式下的socket不需要連接一個目的的socket,它只是簡單地投出數據報.無連接的操作是快速的和高效的,但是數據安全性不佳.
  
  面向連接的操作使用TCP協議.一個這個模式下的socket必須在發送數據之前與目的地的socket取得一個連接.一旦連接建立了,sockets就可以使用一個流接口:打開-讀-寫-關閉.所有的發送的信息都會在另一端以同樣的順序被接收.面向連接的操作比無連接的操作效率更低,但是數據的安全性更高.
  
  SUN一直是網絡建設的支持者,所以在Java中支持sockets就不足為奇了.實際上,Java降低了建立一個sockets程序的難度.每一個傳輸模式都被封裝到了不同的類中.面向連接的類將會首先被我們討論
  
  在Java中面向連接的類有兩種形式,它們分別是客戶端和服務器端.客戶端這一部分是最簡單的,所以我們先討論它.
  
  列表9.1列出了一個簡單的客戶端的程序.它向一個服務器發出一個請求,取回一個Html文檔,並把它顯示在控制台上.
  
  9.1一個簡單的socket客戶端
  
  
 
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved