一:TCP/IP協議
TCP/IP是一個協議族。
TCP:(Transmission Control Protocol)傳輸控制協議
IP:(Internet Protocol)互聯網協議
四層網絡體系結構:物理層(網絡接口層)、互聯網絡層(包含IP協議)、
傳輸控制層(TCP、UDP)、應用層(http、ftp)
(重點理解)TCP協議:面向鏈接、可靠的協議。(「三次握手」確保)效率較低,耗費性能。
通常用於CS(Client-Server客戶端-服務端)結構,用於傳輸重要的數據。
IP地址:網絡上主機的惟一標識地址。
端口(port):具備網絡功能的軟件的惟一標識。服務器
二:Socket(套接字)、ServerSocket
1.Socket:套接字是兩臺機器間通訊的端點。
public Socket(String host,int port)
public OutputStream getOutputStream() 返回此套接字的輸出流。
public InputStream getInputStream() 返回此套接字的輸入流。 網絡
2.ServerSocket:此類實現服務器套接字。
public ServerSocket(int port)
public Socket accept() 偵聽並接受到此套接字的鏈接。此方法在鏈接傳入以前一直阻塞。
引入多線程實現服務器端對多個客戶端的鏈接請求。 多線程
三:Socket應用
1.客戶端發送二進制文件(eg:圖片)到服務端。(詳見代碼)
2.Socket發送序列化對象。性能
四:UDP (瞭解)
UDP:用戶數據報協議(User Datagram Protocol)
面向無鏈接、不可靠的協議。效率高。
1.DatagramSocket 此類表示用來發送和接收數據報包的套接字。
public DatagramSocket(int port)
send(DatagramPacket p) 發送數據
void receive(DatagramPacket p) 接收數據,此方法在接收到數據報前一直阻塞。線程
2.DatagramPacket 此類表示數據報包。
public DatagramPacket(byte[] buf,int length)
用來接收長度爲 length 的數據包。 對象
public DatagramPacket(byte[] buf,int length,InetAddress address,int port)
用來將長度爲 length 的包發送到指定主機上的指定端口號接口
public InetAddress getAddress() 返回與當前客戶端通訊的主機IP地址
public byte[] getData() 返回數據緩衝區。
public int getLength() 返回將要發送或接收到的數據的長度。
圖片
3. InetAddress 表示IP地址
public static InetAddress getByName(String host)
public String getHostName() 獲取此IP地址的主機名。 get