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