JAVA學習第五十九課 — 網路編程概述,java網路編程概述

來源:互聯網
上載者:User

JAVA學習第五十九課 — 網路編程概述,java網路編程概述

網路模型

OSI(Open System Interconnection)開放系統互相連線模型:參考模型

TCP/IP

網路通訊要素

IP地址

連接埠號碼

傳輸協議

網路參考模型




七層OSI模型的基本概念要瞭解


網際層協議:包括:IP協議、ICMP協議、ARP協議、RARP協議。傳輸層協議:TCP協議、UDP協議。應用程式層協議:FTP、Telnet、SMTP、HTTP、RIP、NFS、DNS。


要真正實現網路通訊,首先要找到IP地址,IP地址是網路通訊的一大要素

IP地址:InetAddress

網路中裝置標識

不易記憶,可用本機名

本地迴環地址:127.0.0.1,這個地址,只為訪問本機 

IP地址是對外暴露的標識,可以通過擷取IP地址,訪問


為了進行應用程式的標識區分,就提供了一些數字來標識應用程式,比如QQ 用4000來標識,我的電腦QQ發訊息,發送到IP 位址是: 192.168.0.1 的編號為4000的應用程式上。而這些數字就是(邏輯)連接埠。

機箱上的連接埠:是物理連接埠

連接埠號碼

用於標識進程的邏輯地址,不同進程的標識

有效連接埠,0~65535,其中0~1024系統使用或保留連接埠。

也就是說盡量保證( 1024 < 連接埠編號 <= 65535

而防火牆,就是利用連接埠實現的,比如QQ的連接埠號碼是4000,防火牆設定,連接埠4000的資料,禁止發送,就使得QQ無法串連到網路


IP對象

IP地址比較複雜,在Java中也就被封裝成了對象,java.net包中提供了網路傳輸涉及的對象

類 InetAddress:此類表示互連網協議 (IP) 地址。

InetAdress類下有Inet4Address,Inet6Address兩大類,使IP地址,不易衝突

存在於網際層,該層能識別IP地址,能封裝IP地址

InetAdress對象,無建構函式,說明肯定有方法返回對象,而且是靜態方法

簡單示範

public static void Demo()throws UnknownHostException {//擷取本地主機IP地址對象,要拋出未知主機異常InetAddress ip = InetAddress.getLocalHost();//擷取其他主機ip地址對象//ip = InetAddress.getByName("kevy-PC");//也可以寫IP地址ip = InetAddress.getByName("www.baidu.com");//擷取百度的IP地址System.out.println(ip.getHostAddress());//擷取主機IP地址System.out.println(ip.getHostName());//擷取主機名稱,如果沒有擷取到,說明解析時,區域網路找不到//還可能存在IP地址不唯一的可能,比如新浪、網易,伺服器叢集的情況//得到的IP對象是數組//InetAddress[] ipp = InetAddress.getAllByName("");}

網域名稱解析


正常在訪問主機時,比如訪問網易的主機,網易的主機,無非就是一台電腦儲存一些資料,主機有一個IP地址,

假設127.0.0.1,儲存著網易的網路資源

雖然在訪問網站的時候,是網域名稱,但實際上是IP地址,http://127.0.0.1,早期就是IP地址,但是IP地址有可能對應對應多個主機

所以就有了www(全球資訊網).網域名稱.com(屬於商業化組織).cn(所屬國家類別)

IP地址和網域名稱有著對應關係,在互連網有一些主機,儲存的就是這些對應關係,這就是網域名稱解析,而這些主機就是DNS(網域名稱解析伺服器),只有DNS才記錄網易的IP地址,DNS把IP地址返回你的電腦,再走網易


想提高解析速度,就可以實現本地解析,在本地建立一張網域名稱解析列表,主機本身就內建了,只需我們去配置即可,

C:\Windows\System32\drivers\etc

網域名稱解析時,先走的不是互連網,而是本機,本機失敗再到互連網,解析

所以,由此,就可以在瀏覽一些網站時,可以屏蔽一些網站的垃圾廣告,將廣告網站的網域名稱記錄,配置在本地

127.0.0.1 XXXXX,這樣就會先在本地用自己的IP解析,網站也就打不開,不走互連網。

360屏蔽網址也是這個原理


Socket(插座)

學習傳輸協議,就要先瞭解Socket

要進行網路傳輸就必須有兩個端點,這兩個端點想要通訊,就必須串連,端點就可以理解為Socket

Socket是為網路服務提供的一種機制

通訊的兩端想要通訊必須有Socket

網路通訊其實就是Socket間的通訊

資料在兩個Socket間通過IO傳輸


所以網路編程也可以叫Socket編程





JAVA怎學?對於初學者買什書好一些

C是最基本的門檻,建議你熟悉一下C在學JAVA,掌握函數,FOR語句,IF語句,WHILE語句的用法,基本上就可以學習JAVA了
<Think in java 3>很不錯,看看,網上有中文版的下載~比書店賣的翻譯的要好!
要想做網站就得學jsp,有一本<jsp應用開發詳解>飛思科技出版的!

再介紹幾本:
java編程思想

java就業培訓教程

21天學通JAVA
 
自學《window程式設計》需要什基礎?例如什基礎課程之類的

學校教的C語言基礎,一般都是在Windows系統下的命令列介面下啟動並執行,可以輸出一些字元,也可以輸入一些字元。因為Windows下的操作都可以通過滑鼠點擊來實現,所以就很少回去用到命令列的程式,因此Windows系統提供的命令列程式就會很少。

其實命令列程式的功能是非常強大的,LZ可以去學習使用一下Ubuntu這個作業系統,就會體會到命令列程式的強大,像VIM命令列編輯器,這個類似於記事本,當然功能超級強大,還有很多很多。

LZ說的圖形化的小程式,說的應該是Windows的視窗介面的程式,可以縮小、也可以放大,還可以拖來拖去。這個你用VB或C#來做最簡單了,直接拖放控制項,然後寫幾個事件響應函數,比如按一下滑鼠一個按鈕回去執行你自己定義的函數,這就是所謂的事件驅動機制。

如果LZ想使用C語言來編寫Windows圖形介面程式的話,就需要去學習一下WIN32 API的使用,介紹這方面內容的書已經很少了。LZ也可以去學習一下MFC,經典書籍是《MFC深入淺出》,這個需要LZ具有C++物件導向語言的基礎,也是直接拖放控制項,然後註冊事件處理函數。
 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.