摘要:如地址端口號組成了所謂的,是網絡上運行的程序之間雙向通信鏈路的終結點,是和的基礎套接字網絡上具有唯一標識的地址和端口組合在一起才能構成唯一能識別的標識符套接字。
更多物聯網高并發編程知識請移步:https://www.yuque.com/shizhiy...
Java Socket編程之常識網絡基礎知識網絡基礎知識(參考計算機網絡)
? 《TCP/IP協議棧及OSI參考模型詳解》
? ? ? ? ??
? ? ? ? ? ?IP地址、協議、端口號
目前世界上應用最為廣泛的協議,是以TCP和IP為基礎的不同層次上多個協議的集合,也成TCP/IP協議族、或TCP/IP協議棧
TCP:Transmission Control Protocol 傳輸控制協議
IP:Internet Protocol 互聯網協議
TCP/IP五層模型應用層:HTTP、FTP、SMTP、Telnet等
傳輸層:TCP/IP
網絡層:
數據鏈路層:
物理層:網線、雙絞線、網卡等
IP地址為實現網絡中不同計算機之間的通信,每臺計算機都必須有一個唯一的標識---IP地址。?32位二進制
區分一臺主機的多個不同應用程序,端口號范圍為0-65535,其中0-1023位為系統保留。? ??
如:HTTP:80 ?FTP:21 Telnet:23
IP地址+端口號組成了所謂的Socket,Socket是網絡上運行的程序之間雙向通信鏈路的終結點,是TCP和UDP的基礎
網絡上具有唯一標識的IP地址和端口組合在一起才能構成唯一能識別的標識符套接字。
Socket原理機制:
通信的兩端都有Socket
網絡通信其實就是Socket間的通信
數據在兩個Socket間通過IO傳輸 ? ? ?
Java中的網絡支持針對網絡通信的不同層次,Java提供了不同的API,其提供的網絡功能有四大類:
InetAddress:用于標識網絡上的硬件資源,主要是IP地址
URL:統一資源定位符,通過URL可以直接讀取或寫入網絡上的數據
Sockets:使用TCP協議實現的網絡通信Socket相關的類
Datagram:使用UDP協議,將數據保存在用戶數據報中,通過網絡進行通信。
?
InetAddressInetAddress類用于標識網絡上的硬件資源,標識互聯網協議(IP)地址。?
//獲取本機的InetAddress實例 InetAddress address =InetAddress.getLocalHost(); address.getHostName();//獲取計算機名 address.getHostAddress();//獲取IP地址 byte[] bytes = address.getAddress();//獲取字節數組形式的IP地址,以點分隔的四部分 //獲取其他主機的InetAddress實例 InetAddress address2 =InetAddress.getByName("其他主機名"); InetAddress address3 =InetAddress.getByName("IP地址");URL類
URL(Uniform Resource Locator)統一資源定位符,表示Internet上某一資源的地址,協議名:資源名稱?
//創建一個URL的實例 URL baidu =new URL("http://www.baidu.com"); URL url =new URL(baidu,"/index.html?username=tom#test");//?表示參數,#表示錨點 url.getProtocol();//獲取協議 url.getHost();//獲取主機 url.getPort();//如果沒有指定端口號,根據協議不同使用默認端口。此時getPort()方法的返回值為 -1 url.getPath();//獲取文件路徑 url.getFile();//文件名,包括文件路徑+參數 url.getRef();//相對路徑,就是錨點,即#號后面的內容 url.getQuery();//查詢字符串,即參數使用URL讀取網頁內容
通過URL對象的openStream()方法可以得到指定資源的輸入流,通過流能夠讀取或訪問網頁上的資源
//使用URL讀取網頁內容 //創建一個URL實例 URL url = new URL("http://www.baidu.com"); InputStream is = url.openStream();//通過openStream方法獲取資源的字節輸入流 InputStreamReader isr = newInputStreamReader(is, "UTF-8");//將字節輸入流轉換為字符輸入流,如果不指定編碼,中文可能會出現亂碼 BufferedReader br = newBufferedReader(isr);//為字符輸入流添加緩沖,提高讀取效率 String data = br.readLine();//讀取數據 while (data != null) { System.out.println(data);//輸出數據 data = br.readerLine(); } br.close(); isr.colose(); is.close();
? ? ?
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/74378.html
摘要:使用簡記后端掘金全稱為即消息隊列。優測優社區干貨精選老司機亂談編輯器之神掘金前言是一種信仰,我自從年有了這個信仰,已經個年頭了。 PHP 程序員進階學習書籍參考指南 - 后端 - 掘金PHP程序員進階學習書籍參考指南 @heiyeluren lastmodify: 2016/2/18 ... 當我們在談論前端加密時,我們在談些什么 - 前端 - 掘金潘建旭,豈安科技(www.bigse...
摘要:編程之編程全套的基礎編程基礎及深入講解協議是面向連接的可靠的有序的以字節流的方式發送數據,通過三次握手方式建立連接,形成傳輸數據的通道,在連接中進行大量數據的傳輸,效率會稍低中基于協議實現網絡通信的類客戶端的類服務器端的類通信的步驟創建和打 Java Socket編程之TCP編程 全套的:https://www.yuque.com/shizhiy...基礎:https://blog....
閱讀 623·2023-04-26 02:08
閱讀 2654·2021-11-18 10:02
閱讀 3459·2021-11-11 16:55
閱讀 2341·2021-08-17 10:13
閱讀 2901·2019-08-30 15:53
閱讀 685·2019-08-30 15:44
閱讀 2545·2019-08-30 11:10
閱讀 1755·2019-08-29 16:57