欧美vvv,亚洲第一成人在线,亚洲成人欧美日韩在线观看,日本猛少妇猛色XXXXX猛叫

新聞資訊

    Java網絡編程之傳輸控制協議(一) 傳輸控制協議是一種基于流的網絡通訊方法,它與其它的任何協議都有很大的不同。本文討論TCP流以及在Java中怎樣操作它。

    一、概述

    TCP提供的網絡通訊接口與用戶數據報協議(UDP)截然不同。TCP的特性使網絡編程很具魅力,而且它刪除了UDP的很多干擾部分(例如數據包的排序和丟失),簡化了網絡通訊。UDP關心的是數據包的傳輸,而TCP關注的是建立網絡連接,并在網絡連接中發送和接收字節流。

    數據包可以通過網絡用多種方法發送,并且它們到達的時間可能不同。這有利于性能的提高和程序的健壯性,因為單個包的丟失不一定干擾其它包的傳輸。但是,這樣的系統使程序員必須作更多的工作,他們必須保證數據的送達。 TCP通過對發送和次序的保證消除了這些額外的工作,為客戶端和支持兩路(two-way)通訊的服務器之間提供了可靠的字節通訊流。它在兩臺計算機之間建立了"虛擬連接",可以通過虛擬連接發送數據流。

    TCP使用更低層的(lower-level)的IP通訊協議在兩臺計算機之間建立連接。這種連接提供了一個允許字節流發送和接收的接口,并且采用透明的方式把數據轉換為IP數據報。數據報()的問題之一是不能保證數據包到達目的地。TCP解決了這個問題,它提供了有保證的數據字節的送達。當然,網絡錯誤影響了送達也是可能的,但是TCP通過類似重新發送數據包解決了這種實現的問題,并且只在情況很嚴重(例如沒有到網絡主機的路由或連接丟失了)的時候才提醒程序員。 兩臺計算機之間的虛擬連接表現為套接字()。套接字允許數據的發送和接收,但是UDP套接字和TCP套接字之間有本質的區別。首先TCP套接字連接到單個計算機,然而UDP套接字可以向多臺計算機傳輸或接收數據;其次,UDP套接字只能發送和接收數據包,然而TCP允許通過字節流的數據傳輸(表現為輸入流()和輸出流。為了在網絡上傳輸,它們被轉換為數據包,不需要程序員干涉。

    1、 UDP(用戶數據報協議)上的TCP的優點

    使用udp實現可靠傳輸_網絡編程實現文件傳輸_p2p傳輸實現環節?

    ⑴自動化地錯誤控制

    TCP流上的數據傳輸比通過UDP的信息包的傳輸更可靠。在TCP下層,通過虛擬連接發送的數據包括一個檢查機制以確保它們沒有被破壞(與UDP類似)。但是,TCP保證了數據的送達--在傳輸過程中丟失的數據包將被重新傳輸。

    你也許想知道這是如何實現的--實際上網絡編程實現文件傳輸,IP和UDP不保證送達,當數據包丟失的時候它們也不會發出任何警告。在TCP使用數據包發送了某個數據集合的時候就會啟動一個計時器。在UDP中,我們使用 .為()操作啟動一個計時器。在TCP中,如果接收者發送一個肯定的應答就禁止計時器,但是如果在超時前還沒有收到肯定的應答,數據包就被重新傳輸。這意味著寫入某個TCP套接字的任何數據將到達另一方而不需要程序員的進一步干涉(除非發生大的事故造成整個網絡癱瘓)。錯誤控制的代碼都由TCP處理了。

    ⑵可靠性

    因為在TCP連接中有多方參與的兩臺計算機之間發送的數據通過IP數據報傳輸,數據包到達的次序可能經常出現不同。這可能需要使用一個循環從TCP套接字讀取信息,因為字節流的次序可能被打亂并且頻繁遇到不可靠的問題。幸運的是,次序等問題已經被TCP處理好了--每一個數據包都包含一個用于排序的序列號。后發送、先到達的數據包將保持在一個隊列中,直到排好次序的數據可以使用為止。接著數據就可以通過套接字的接口傳遞到應用程序中。

    ⑶易于使用

    p2p傳輸實現環節?_使用udp實現可靠傳輸_網絡編程實現文件傳輸

    盡管把信息存儲為數據包的確沒有超越程序員的范圍網絡編程實現文件傳輸,但這不會是計算機之間通訊的最高效率的途徑。還應該有另外一些的復雜性,你可以討論在某個底線之上設計和建立軟件,為程序員提供足夠的復雜性。典型情況下開發者歡迎軟件開發復雜性的降低,TCP就實現了這種功能。TCP允許程序員用一種完全不同的方式思考問題,而這種方式更加現代化。數據不是被處理為不連續的單元(數據報包),而是被處理為連續的流,就像目前讀者所熟悉的I/O流。TCP套接字延續了傳統的Unix編程,在Unix編程中通訊與文件輸入和輸出是一樣處理的。無論開發者寫入網絡套接字、通訊管道、數據結構、用戶控制臺或文件的時候,這種機制都時相同的。當然它也同樣應用與讀取信息。這使得通過TCP套接字進行通訊比通過數據報包通訊更加簡單。

    2、使用端口在應用程序之間通訊

    很明顯,TCP與UDP之間差別巨大,但是在兩種協議之間也有一項重要的相似性。兩種都共享了通訊端口的概念,它可以區別各個應用程序。在相同的端口上可以運行多個服務和客戶端,而且希望不給它們分配端口號而挑選出某個應用程序是不可能的。當TCP套接字建立到某臺計算機的連接的時候,它需要兩部分非常重要的信息才能連接到遠程客戶端--該計算機的IP地址和端口號。此外,本地的IP地址和端口號也將綁定到它上面,因此遠程計算機能夠識別是哪一個應用程序建立了連接??傊悴粫M阕约旱碾娮余]件被在相同系統上運行軟件的其它用戶訪問。

    允許多個TCP應用程序在同一臺計算機上運行

    TCP中的端口與UDP中的端口相似--它們的數字范圍都是1-65535。1024以下的端口是受限制的,只能被知名的服務(例如HTTP、FTP、SMTP、POP3和)使用。

    3、套接字操作

    使用udp實現可靠傳輸_p2p傳輸實現環節?_網絡編程實現文件傳輸

    TCP套接字可以執行多種操作,包括:

    建立到某個遠程主機的連接。

    給遠程主機發送數據。

    從遠程主機接收數據。

    關閉連接。

    此外還有一些特殊類型的套接字,它們提供綁定到特定端口號的服務。這類套接字通常用在服務器中,可以執行下面一些操作:

    p2p傳輸實現環節?_網絡編程實現文件傳輸_使用udp實現可靠傳輸

    綁定到某個本地端口

    從遠程主機接收輸入的連接

    從本地端口取消綁定。

    這兩種套接字可以被分為不同的類,要么是客戶端使用的,要么是服務器使用的(由于某些客戶端可以象服務器一樣操作,還有些服務器可以象客戶端一樣操作)。但是,客戶端和服務器的角色還是可以靠經驗區分的。 關注微信號,敬請期待下文!

    使用udp實現可靠傳輸_網絡編程實現文件傳輸_p2p傳輸實現環節?

    長按二維碼有驚喜哦!

網站首頁   |    關于我們   |    公司新聞   |    產品方案   |    用戶案例   |    售后服務   |    合作伙伴   |    人才招聘   |   

友情鏈接: 餐飲加盟

地址:北京市海淀區    電話:010-     郵箱:@126.com

備案號:冀ICP備2024067069號-3 北京科技有限公司版權所有