InetAddress

Java以InetAddress類別來處理有關host name和 IP 位址的取得

 

下表列出java.net.InetAddress常用的函數

函數 功能
static InetAddress[] getAllByName(String name) 給予主機的host name,取得該主機下所有提供服務的IP位址
static InetAddress getByName(String name) 給予主機的host name,取得該主機的IP位址
String getHostAddress() 取得主機的IP
String getHostName() 取得主機的host name
static InetAddress getLocalHost() 取得本地端的host name和IP

 

下方範例用來取得本機的名稱與IP位址

Image 1.png

------ OUTPUT ------

172.20.11.7
DESKTOP-CEB
DESKTOP-CEB/172.20.11.7

 

下方範例使用getByName取得google的host name和IP

Image 6.png

------ OUTPUT ------

google.com/172.217.27.142

 

URL

URL是universal resource locator的縮寫,用以表示網路上資源的位址

 

下方範例示範一些URL的用法

Image 7.png

------ OUTPUT ------

通訊協定名稱為: https
host name為: lakesd6531.pixnet.net
port號為: -1
檔名為 /blog

(因為我們沒有指定使用的port,所以取得是-1)

 

下方範例使用URL的getContent,取得URL內的資源

Image 9.png

------ OUTPUT ------

床前明月光,
疑是地上霜。
舉頭望明月,
低頭思故鄉。

 

Socket

client server.png

當Client發出請求,Server一旦收到Client的請求後,會建立一個新的Socket物件

並透過這個物件與客戶端連線,以便進行資料的傳遞

Socket是程式與網路之間的一種介面,可以透過Socket把資訊傳送到網路

 

Java提供ServerSocket與Socket的Class

可以將Client的電腦連上Server,並可從Server傳遞資料給Client

作法是在Server端的程式中呼叫ServerSocket,把server socket建立在特定的port號

再呼叫accept(),用以監控client的請求

當Client有請求的時候,server的accept會接收請求,並建立Socket與Client連線

然後依據Client的請求,再把資訊傳回給Client

 

下方範例建立一個Server端的程式,他可以等候Client的請求

一旦Client與Server連線,就會建立一個Socket的物件,並透過Socket傳送字串給Client

Image 11.png

 

接著我們建立一個Client端的程式

他對Server送出請求,然後接收伺服器端送出來的字串

Image 13.png

執行這兩支程式的時候,必須先執行Server的程式,再執行Client的程式

------ Server OUTPUT ------

等待客戶端的請求中...
客戶端已和本機連線...
資料正在傳送中
資料傳送完畢

 

------ Client OUTPUT ------

正在與伺服器建立連線...
已經與伺服器取得連線...
從伺服器收到: 
Message...

arrow
arrow

    Mark Zhang 發表在 痞客邦 留言(0) 人氣()