網絡程式設計, 用來實作網絡互連的不同計算機上運作的程式間可以進行資料互動。
網絡互連的不同計算機上、計算機上運作的程式間、進行資料互動。
網絡模型: 計算機之間以何種規則進行通信,就是網絡模型研究的問題;
TCP/IP參考模型,OSI參考模型;我們在應用層進行開發。
網絡通信的三要素:
一、IP位址:網絡中裝置的辨別,用于辨別主機;通過id位址找到目标主機。Ip位址是電腦的唯一标示,每台電腦都有唯一的辨別。
1)如何去配置IP位址呢?
控制台--->網絡連接配接--->右鍵單擊--->屬性--->Internet網絡協定--->單擊即可。
2)每一個ip位址都對應一個網址(相當于和域名綁定,域名解析器:DNS)
3)如何擷取和操作ip位址呢?
為了友善我們對ip位址的擷取和操作,java提供了一個類InetAddress供我們使用。
二、端口: 用于辨別程序的邏輯位址,一台電腦上不同程序的辨別; 哪一個應用程式接受資料?
1)有效端口0——65535,其中0——1024是系統使用或者保留的端口,對應系統程序;
三、協定: 通訊的規則 比如:TCP/UDP(都要說中文,定義通訊的規則)
兩台主機通訊,要滿足這三點:知道對方的ip以及應用程式的端口号、采用相同的傳輸協定。
1)TCP協定:通過三次握手連接配接,是可靠協定,必須建立連接配接。
2)UDP協定:無連接配接,是不可靠的協定,資料傳輸大小有限制。64K
TCP/IP協定的開發研制人員将Internet分為五個層次,以便于了解,它也稱為網際網路分層模型或網際網路分層參考模型,如下表:
![](https://img.laitimes.com/img/_0nNw4CM6IyYiwiM6ICdiwiIyVGduV2QvwVe0lmdhJ3ZvwFM38CXlZHbvN3cpR2Lc1TPB10QGtWUCpEMJ9CXsxWam9CXwADNvwVZ6l2c052bm9CXUJDT1wkNhVzLcRnbvZ2LcZXUYpVd1kmYr50MZV3YyI2cKJDT29GRjBjUIF2LcRHelR3LcJzLctmch1mclRXY39jN3YjMwUzM5EzMxcDM2EDMy8CX0Vmbu4GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.jpg)
應用層(第五層) 運作在不同主機上的程序則使用應用層協定進行通信。
傳輸層(第四層) :定義了一些資料傳輸的協定和端口号(tcp、udp協定),主要是将從下層接收的資料進行分段和傳輸,達到目的位址後再進行重組。
網際網路層(第三層) : 主要将下層接收到的資料進行IP位址的封裝與解封裝,在這一層工作的裝置是路由器,常把這一層的資料叫做資料包。
資料鍊路層(第二層) :資料通過交換機進行傳輸 。
實體層(第一層) :主要用于定義實體裝置标準,比如網線接口類型、光釺接口類型、各種傳輸媒體的傳輸速率等等,這一層的資料叫做比特。網線、光釺、交換機等。
Socket通信原理圖解:
Socket套接字:(網絡程式設計、套接字程式設計)
網絡上具有唯一辨別的ip位址和端口号組合在一起才能構成唯一能識别的辨別符套接字。(組合在一起)
Socket原理機制:
1)通信兩端都有Socket對象(裡面包含ip位址和端口号);
2)網絡通信其實是Socket之間的通信;
3)資料在兩個Socket之間通過IO進行傳輸;
4)網絡程式設計其實是面向Socket程式設計。