java 深入理解 網絡編程

java 深入理解 網絡編程

ID:34425772

大?。?42.96 KB

頁數(shù):11頁

時間:2019-03-06

java 深入理解 網絡編程_第1頁
java 深入理解 網絡編程_第2頁
java 深入理解 網絡編程_第3頁
java 深入理解 網絡編程_第4頁
java 深入理解 網絡編程_第5頁
資源描述:

《java 深入理解 網絡編程》由會員上傳分享,免費在線閱讀,更多相關內容在教育資源-天天文庫。

1、序java深入理解網絡編程Java是一種平臺無關的編程語言,具有“一次編寫、到處運行”的特點,所以非常適合網絡編程。可以說,在網絡編程方面沒有任何一門語言比Java更優(yōu)秀?!ゾW絡基本概念μ計算機網絡,就是把分布在不同地理區(qū)域的計算機與專門的外部設備用通信線路互連成一個規(guī)模大、功能強的網絡系統(tǒng),從而使眾多的計算機可以方便地互相傳遞信息,共享硬件、軟件、數(shù)據信息等資源。μ網絡體系結構:國際標準化組織ISO于l978年提出“開放系統(tǒng)互連參考模型”,即著名的OSI(OpenSystemInterconne

2、ction)模型。該模型把計算機網絡分成物理層、數(shù)據鏈路層、網絡層、傳輸層、會話層、表示層、應用層等七層?!ネㄐ艆f(xié)議計算機網絡中實現(xiàn)通信必須有一些約定,即通信協(xié)議。對速率、傳輸代碼、代碼結構、傳輸控制步驟、出錯控制等制定標準。TCP協(xié)議:提供可靠的數(shù)據傳輸服務的規(guī)則。IP協(xié)議進行IP數(shù)據包的分割和組裝。但是通過IP協(xié)議并不能清楚地了解到數(shù)據包是否順利地發(fā)送給目標計算機。而使用TCP協(xié)議,它將數(shù)據包成功發(fā)送給目標計算機后,會要求發(fā)送一個確認,如果在某個時間內沒有收到確認,TCP將重新發(fā)送數(shù)據包?!

3、P地址和端口號IP地址:為實現(xiàn)網絡中不同的計算機之間的通信,在網絡中的每臺機器都必須有一個與眾不同的標識,這就是IP地址(IPAddress)格式:數(shù)字型、32位、由4段8位的二進制數(shù)組成。一般表示為十進制形式(4個0~255的十進制整數(shù)),中間用圓點隔開,如:166.111.78.98。域名地址:也是分段表示的,便于記憶的、字符串形式。端口:一個16位的整數(shù),用于表示數(shù)據交給哪個通信程序處理。因此,端口就是應用程序與外界交流的出入口,它是一種抽象的軟件結構,包括一些數(shù)據結構和I/O(基本輸入/輸

4、出)緩沖區(qū)。不同的應用程序處理不同端口上的數(shù)據,同一臺機器上不能有兩個程序使用同一個端口,端口號可以從1不同的應用程序處理不同端口上的數(shù)據,同一臺機器上不能有兩個程序使用同一個端口,端口號可以從0到65535,通常將它分為三類:公認端口(WellKnownPorts):從0到1023,它們緊密綁定(Binding)一些服務。注冊端口(RegisteredPorts):從1024到49151。它們松散地綁定一些服務。動態(tài)和/或私有端口(Dynamicand/orPrivatePorts):從4915

5、2到65535,這些端口是應用程序使用的動態(tài)端口,應用程序一般不會主動使用這些端口。JDK中為開發(fā)網絡應用程序提供了java.net包,該包下的類和接口幾乎都是為網絡編程服務的。ˉInetAddress:用于描述IP地址的對象InetAddress類沒有提供構造方法,而是提供了兩個靜態(tài)方法來獲取InetAddress實例getByName(Stringhost):根據主機獲取對應的InetAddress對象。getByAddress(byte[]addr):根據原始IP地址來獲取對應的InetAd

6、dress對象?!ナ裁词荱DP協(xié)議?UDP(UserDatagramProtocol)協(xié)議是用戶數(shù)據報,在網絡中它與TCP協(xié)議一樣用于處理數(shù)據包。在OSI模型中,在第四層——傳輸層,處于IP協(xié)議的上一層。UDP是一種無連接的協(xié)議,每個數(shù)據報都是一個獨立的信息,包括完整的源或目的地址,它在網絡上以任何可能的路徑傳往目的地,因此能否到達目的地,到達目的地的時間以及內容的正確性都是不能被保證的?!槭裁匆褂肬DP?在網絡質量令人不十分滿意的環(huán)境下,UDP協(xié)議數(shù)據包丟失會比較嚴重。但是由于UDP的特性:

7、它不屬于連接型協(xié)議,因而具有資源消耗小,處理速度快的優(yōu)點,所以通常音頻、視頻和普通數(shù)據在傳送時使用UDP較多,因為它們即使偶爾丟失一兩個數(shù)據包,也不會對接收結果產生太大影響。比如聊天用的ICQ和OICQ就是使用的UDP協(xié)議?!ピ贘ava中操縱UDP使用位于JDK中Java.net包下的DatagramSocket和DatagramPacket類,可以非常方便地控制用戶數(shù)據報文。DatagramSocket類:創(chuàng)建接收和發(fā)送UDP的Socket實例DatagramSocket():創(chuàng)建實例。通常用于

8、客戶端編程,它并沒有特定監(jiān)聽的端口,僅僅使用一個臨時的。DatagramSocket(intport):創(chuàng)建實例,并固定監(jiān)聽Port端口的報文。DatagramSocket(intport,InetAddresslocalAddr):這是個非常有用的構建器,當一臺機器擁有多于一個IP地址的時候,由它創(chuàng)建的實例僅僅接收來自LocalAddr的報文。注意:在創(chuàng)建DatagramSocket類實例時,如果端口已經被使用,會產生一個SocketException的異常拋出,并導致程序非法終

當前文檔最多預覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當前文檔最多預覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學公式或PPT動畫的文件,查看預覽時可能會顯示錯亂或異常,文件下載后無此問題,請放心下載。
2. 本文檔由用戶上傳,版權歸屬用戶,天天文庫負責整理代發(fā)布。如果您對本文檔版權有爭議請及時聯(lián)系客服。
3. 下載前請仔細閱讀文檔內容,確認文檔內容符合您的需求后進行下載,若出現(xiàn)內容與標題不符可向本站投訴處理。
4. 下載文檔時可能由于網絡波動等原因無法下載或下載錯誤,付費完成后未能成功下載的用戶請聯(lián)系客服處理。