計算機網絡
是指將地理位置不同的具有獨立功能的多台計算機及其外部設備,通過通信線路連接起來,
在網絡操作系統,網絡管理軟件及網絡通信協議的管理和協調下,實現資源共享和信息傳遞的計算機系統。
網絡編程
就是用來實現網絡互連的不同計算機上運行的程序間可以進行數據交換。
TCP/IP協議棧
應用層
傳輸層
網絡層
網絡接口層
大多數應用程序員僅僅涉及應用層和傳輸層
網絡通信三要素
IP地址:InetAddress
網絡中設備的標識,不易記憶,可用主機名
要想讓網絡中的計算機能夠互相通信,必須為每台計算機指定一個標識號,
通過這個標識號來指定要接受數據的計算機和識別發送的計算機,在TCP/IP協議中,這個標識號就是IP地址。
java提供了一個類InetAddress 供我們使用。
端口號
用於標識進程的邏輯地址,不同進程的標識
物理端口 網卡口
邏輯端口 我們指的就是邏輯端口
每個網絡程序都會至少有一個邏輯端口
用於標識進程的邏輯地址,不同進程的標識
有效端口:0~65535,其中0~1024系統使用或保留端口。
傳輸協議
通訊的規則
常見協議:TCP,UDP
UDP
將數據源和目的封裝成數據包中,不需要建立連接;
每個數據報的大小在限制在64k;因無連接,是不可靠協議;不需要建立連接,速度快
TCP
建立連接,形成傳輸數據的通道;在連接中進行大數據量傳輸;
通過三次握手完成連接,是可靠協議;必須建立連接,效率會稍低
Socket
Socket套接字:
•網絡上具有唯一標識的IP地址和端口號組合在一起才能構成唯一能識別的標識符套接字。
Socket原理機制:
•通信的兩端都有Socket。
•網絡通信其實就是Socket間的通信。
•數據在兩個Socket間通過IO傳輸。
UDP傳輸
DatagramSocket與DatagramPacket建立發送端,接收端。建立數據包。調用Socket的發送接收方法。關閉Socket。發送端與接收端是兩個獨立的運行程序。
TCP傳輸
Socket和ServerSocket建立客戶端和服務器端建立連接后,通過Socket中的IO流進行數據的傳輸關閉socket同樣,客戶端與服務器端是兩個獨立的應用程序。