網路程式設計(二)

2021-09-30 15:19:26 字數 1500 閱讀 2658

上面一篇簡單介紹了inetaddress的基本用法

現在簡單說明下networkinte***ce可以獲取本機網路介面的相關資訊,包括硬體位址,mtu,所有的ip位址等資訊,需要獲取本機ip時,最好使用networkinte***ce對配置的ip位址進行篩選

三個靜態方法 getnetworkinte***ces()

getbyname(string name)

getbyinetaddress(inetaddress addr)

[b]1.getnetworkinte***ces()[/b]

enumeratione=networkinte***ce.getnetworkinte***ces();

while(e.hasmoreelements())

system.out.println(e.nextelement().getname());

結果

//三個練習不清楚

lo //lo是環迴介面

eth0 //本地連線的位址

ppp0 //網路撥號的

[b]2.getbyname(string name)//上面的網路介面名稱[/b]

networkinte***ce n= networkinte***ce.getbyname("ppp0");

system.out.println(n.getinetaddresses().nextelement().gethostaddress());

結果

14.109.117.39 //我的網路位址

[b]3.getbyinetaddress(inetaddress addr)[/b]

networkinte***ce n= networkinte***ce.getbyinetaddress(inetaddress.getlocalhost());

system.out.println(n.getname());

結果

ech0 //我設定的本地連線的

[b]總的來說[/b]

inetaddress使用inetaddress的getbyname方法可以獲取遠端服務的ip位址(通過dns服務獲取的),使用getallbyname方法可以獲取遠端指定服務的所有服務主機的ip位址。

用getlocalhost方法可以獲取本地ip位址,但是這種方式並不可靠,當出現多張網絡卡,或乙個網路介面配置了多個ip,或者不同的作業系統型別,都不能保證能夠獲得想要的ip。

networkinte***ce 獲得本地網路的所有資訊

總的網路關係不是太清楚。。。

網路程式設計(二)

網路程式設計基礎 二 struct in addr 這個結構體中儲存的是網路二進位制的ip位址 include struct hostent gethostbyname const char name name 網域名稱 返回值 struct hostent define h addr h addr...

網路程式設計(二)

一 流式服務和資料報服務 1 位元組流服務 傳送端send 只是將資料寫到tcp傳送緩衝區中,然後將傳送緩衝區中的資料打包成報文段傳送出去。接收端又將接收到的報文段寫到緩衝區中,最後recv 直接取資料。位元組流服務特點 資料沒有明確分割 由底層做分割 不分一定的報文段,什麼時候想發便可將寫入緩衝區...

網路程式設計(二)

在之前的部落格中,介紹了傳輸層的一種重要協議 tcp協議。今天來介紹另外一種傳輸層協議 udp 一 udp udp 無連線的 不可靠的 資料報服務。首先看一下udp報頭 從上圖可以看出,udp協議報頭比tcp協議報頭簡單很多,沒有tcp報頭裡面那麼多的保證機制,所以udp較比tcp簡單。不可靠 ud...