Java Socket程式設計

2021-09-17 02:31:48 字數 2096 閱讀 2599

tcp協議全稱是transmission control protocol,傳輸控制協議,是以位元組流的方式傳送資料的協議。ip全稱為internet protocol網際網路協議,tcp/ip協議在四層模型中的傳輸層。http、ftp、telnet(ssh)遠端登入服務為應用層協議,是應用層感知和選擇的協議。

ip位址+埠號組成了socket的邏輯概念,socket是tcp/ip的基礎。

inetaddress沒有構造方法,無法通過new來構造物件,這個類在靜態方法中直接返回了inetaddress類的例項。

getlocalhost   獲取本地主機的inetaddress類例項

獲取inetaddress類例項後可以通過gethostaddress返回ip位址字串

可以通過主機名、ip位址等來獲取相應的inetaddress類例項(host主機名唯一標識一台機器)

url url =

newurl

("");

url newurl =

newurl

(url,

"/index.html");

// 可以通過例項的方法獲取資訊

url.

getprotocol()

; url.

gethost()

;

可以通過openstream方法發起網路呼叫

url url =

newurl

("");

// 通過url的openstream方法獲取位元組輸入流(tcp以位元組流的形式傳送資料)

inputstream is = url.

openstream()

;// 將位元組輸入流轉換為字元(乙個字元佔多個位元組)輸入流,指定字符集編碼

inputstreamreader isr =

newinputstreamreader

(is,

"utf-8");

// 為字元輸入流提供緩衝

bufferedreader br =

newbufferedreader

(isr)

; string data = br.

readline()

; br.

close()

;

首先server端建立seversocket對某個埠進行監聽,然後client建立socket傳送請求,server端收到請求建立連線,通過inputstream和outputstream進行通訊。完成通訊之後關閉socket和相關資源,結束通訊。

伺服器端步驟:

// 建立伺服器端socket例項

serversocket serversocket =

newserversocket

(8080);

// 使用accept方法開始監聽,一旦監聽到請求會返回socket例項

socket socket = serversocket.

accept()

;// 獲取輸入流,其他過程同上

inputstream is = socket.

getinputstream()

;

客戶端步驟:

// 指定伺服器位址和埠號,本機的話指定localhost或者127.0.0.1

socket socket =

newsocket

("127.0.0.1"

,8080);

// 獲取輸出流,向伺服器端傳送資訊

outputstream os = socket.

getoutputstream()

; printwriter pw =

newprintwriter

(os)

; pw.

write

("admin: yupen");

// ...省略其他步驟

相同地,服務端也可以通過輸出流向客戶端傳送資訊

可以通過多執行緒來解決這個問題

while

(true

)

Java Socket程式設計

一般,就這麼的形式,熟悉後就這麼用了。客戶端 首先,建立客戶端套接字 socket s new socket ip,port 通過套接字,可以獲得輸入流和輸出流 inputstream is s.getinputstream outputstream os s.getoutstream 接下來就是對...

java socket程式設計

1.什麼是socket 所謂socket通常也稱作 套接字 用於描述ip位址和埠,是乙個通訊鏈的控制代碼。應用程式通常通過 套接字 向網路發出請求或者應答網路請求。2.客戶端和伺服器端通過socket傳送訊息和接收訊息的過程 接收訊息的過程 傳送訊息的過程 server端listen 監聽 某個埠是...

Java socket程式設計

對tcp ip udp socket程式設計這些詞你不會很陌生吧?隨著網路技術的發展,這些詞充斥著我們的耳朵。那麼我想問 1.什麼是tcp ip udp?2.socket在 呢?3.socket是什麼呢?4.你會使用它們嗎?什麼是tcp ip udp?tcp ip transmission cont...