Socket傳輸模式
Sockets有兩種主要的操作方式:面向連接的和無連接的
面向連接的sockets操作就像一部電話
他們必須建立一個連接和一人呼叫
所有的事情在到達時的順序與它們出發時的順序時一樣
無連接的sockets操作就像是一個郵件投遞
沒有什麼保證
多個郵件可能在到達時的順序與出發時的順序不一樣
到底用哪種模式是郵應用程序的需要決定的
如果可靠性更重要的話
用面向連接的操作會好一些
比如文件服務器需要他們的數據的正確性和有序性
如果一些數據丟失了
系統的有效性將會失去
一些服務器
比如間歇性地發送一些數據塊
如果數據丟了的話
服務器並不想要再重新發過一次
因為當數據到達的時候
它可能已經過時了
確保數據的有序性和正確性需要額外的操作的內存消耗
額外的費用將會降低系統的回應速率
無連接的操作使用數據報協議
一個數據報是一個獨立的單元
它包含了所有的這次投遞的信息
把它想象成一個信封吧
它有目的地址和要發送的內容
這個模式下的socket不需要連接一個目的的socket
它只是簡單地投出數據報
無連接的操作是快速的和高效的
但是數據安全性不佳
面向連接的操作使用TCP協議
一個這個模式下的socket必須在發送數據之前與目的地的socket取得一個連接
一旦連接建立了
sockets就可以使用一個流接口:打開
讀
寫
關閉
所有的發送的信息都會在另一端以同樣的順序被接收
面向連接的操作比無連接的操作效率更低
但是數據的安全性更高
SUN一直是網絡建設的支持者
所以在Java中支持sockets就不足為奇了
實際上
Java降低了建立一個sockets程序的難度
每一個傳輸模式都被封裝到了不同的類中
面向連接的類將會首先被我們討論
Sockets有兩種主要的操作方式:面向連接的和無連接的
面向連接的sockets操作就像一部電話
他們必須建立一個連接和一人呼叫
所有的事情在到達時的順序與它們出發時的順序時一樣
無連接的sockets操作就像是一個郵件投遞
沒有什麼保證
多個郵件可能在到達時的順序與出發時的順序不一樣
到底用哪種模式是郵應用程序的需要決定的
如果可靠性更重要的話
用面向連接的操作會好一些
比如文件服務器需要他們的數據的正確性和有序性
如果一些數據丟失了
系統的有效性將會失去
一些服務器
比如間歇性地發送一些數據塊
如果數據丟了的話
服務器並不想要再重新發過一次
因為當數據到達的時候
它可能已經過時了
確保數據的有序性和正確性需要額外的操作的內存消耗
額外的費用將會降低系統的回應速率
無連接的操作使用數據報協議
一個數據報是一個獨立的單元
它包含了所有的這次投遞的信息
把它想象成一個信封吧
它有目的地址和要發送的內容
這個模式下的socket不需要連接一個目的的socket
它只是簡單地投出數據報
無連接的操作是快速的和高效的
但是數據安全性不佳
面向連接的操作使用TCP協議
一個這個模式下的socket必須在發送數據之前與目的地的socket取得一個連接
一旦連接建立了
sockets就可以使用一個流接口:打開
讀
寫
關閉
所有的發送的信息都會在另一端以同樣的順序被接收
面向連接的操作比無連接的操作效率更低
但是數據的安全性更高
SUN一直是網絡建設的支持者
所以在Java中支持sockets就不足為奇了
實際上
Java降低了建立一個sockets程序的難度
每一個傳輸模式都被封裝到了不同的類中
面向連接的類將會首先被我們討論
From:http://tw.wingwit.com/Article/program/Java/hx/201311/26676.html