Java Socket
☎️基礎知識點
- 網絡:將不同區域的計算機連接一起;局域網、城域網、互聯網
- 地址:IP地址,確定網絡上,一個絕對地址、位置
- 端口號:區分計算機軟件的,0-65535
- 在同一個協議下,端口號不能重複,不同協議下可以重複
- 1024以下的不要使用,80–>http,21–>ftp
- 資源定位:URL–>統一資源+定位符;URI–>統一資源
- 數據的傳輸
- 協議:TCP和UDP協議
- TCP(Transfer Confrol Protocol):電話,類似三次握手,面向連接,安全可靠,效率低下
- UDP(User Datagram Protocol):短信,非面向連接,效率高
- 傳輸:先封裝,後拆封
Image Not Showing
Possible Reasons
- The image file may be corrupted
- The server hosting the image is unavailable
- The image path is incorrect
- The image format is not supported
Learn More →
☎️相關Java類
- InetAddress(不包含端口) InetSocketAddress(包含端口)
DNS域名解析
- URL
- TCP: ServerSocket Socket
- UDP: DatagramSocket DatagramPacket
InetAddress
封裝IP及DNS域名解析,不封裝端口
Java8 官方API文檔 InetAddress
InetSocketAddress
Java8 官方API文檔 InetSocketAddress
URL
Java8 官方API文檔 URL
URI(Uniform Resource Identifier):統一資源標識符,用來唯一的標識一個資源
URL(Uniform Resource Locator):統一資源定位器,它是一種具體的URI
- 組成:
- 協議
- 存放資源的主機域名
- 端口(默認:80)
- 資源名(端口之後,相對於主機的地址)
- 建構子
- 常用方法
獲取網頁資源
IO流的使用可參考🍀JavaSE_04_IO。
- 使用字節流獲取:不建議使用此方法,會亂碼。
- 使用字符流獲取:建議使用的方法。
- 字節數組的輸出
- 字節數組的輸入
☎️UDP
以數據為中心,非面向連接,不安全,數據可能丟失,效率高
DatagramSocket,相當於是碼頭
DatagramPacket,相當於是發送和接收數據的集裝箱
客戶端
服務器端
☎️TCP
面向連接,安全、可靠、效率低,類似於打電話
Image Not Showing
Possible Reasons
- The image file may be corrupted
- The server hosting the image is unavailable
- The image path is incorrect
- The image format is not supported
Learn More →
- 面向連接:請求Request-響應Response
- Socket編程
- 聊天室Socket實現原理
- 客戶端可以發送數據 + 接收數據,並且每個客戶端相互獨立的
- 為每個客戶端建立線程
- 輸入流和輸出流應彼此獨立(多個線程)
客戶端
服務器端