1 伺服器端通過serversocket建立監聽,客戶端通過socket連線到指定伺服器後通訊雙方就可以通過io流進行通訊。
計算機網路分為物理層,資料鏈路程,網路層,傳輸層,會話層,表示層,應用層七層。
2基於tcp協議的網路程式設計
ip協議只能保證計算機能傳送和接收分組資料,ip協議不能解決資料分組資料在傳輸過程中可能出現的問題。
tcp協議被稱為一種端對端協議,當兩台計算機連線時,tcp協議將會讓他們建立乙個連線,用於傳送和接收資料的虛擬鏈路,tcp協議負責收集資訊包,依次傳送,
tcp使用重發機制,當乙個通訊實體傳送乙個訊息給另外乙個通訊實體後,需要收到另外乙個通訊實體的確認資訊,如果沒有收到另外乙個通訊實體的確認訊息,將會再次傳送剛才傳送的資訊。
例:
/**
* 客戶端 傳送資料
* @author shipp
*/public
class
textdemo_16
}
/**
* 服務端
* 接收資料
* @author shipp
*/public
class
textdemo_15
}}
2 基於udp協議的網路程式設計
udp協議是一種不可靠的網路協議,它在通訊的兩端各建立乙個socket,但是這兩個socket並沒有虛擬鏈路,這兩個socket只是傳送,接收資料報的物件。
udp是一種面向非連線的協議,面向非連線指的是在正式通訊之前不必與對方先建立連線,不管對方狀態就直接傳送。至於對方是否可以接收到這些資料,udp協議無法控制。因此對於udp協議而言,沒有所謂的客戶端和伺服器端的概念。
例:
public
class
udpclient
catch
(socketexception e)
// 初始化傳送用的datagramsocket,
trycatch
(unknownhostexception e1)
// 建立鍵盤輸入流
scanner scanner =
newscanner
(system.in)
;while
(scanner.
hasnextline()
)catch
(ioexception e)
// 輸出收到的位元組
system.out.
println
(new
string
(inbuff,
0, indatagrampacket
.getlength()
));}
}public
static
void
main
(string[
] args)
}
public
class
udpserver
;/**
* 接收和傳送資料
* * @throws ioexception
*/public
void
init()
throws ioexception
catch
(socketexception e)
for(
int i =
0; i <
1000
; i++)}
public
static
void
main
(string[
] args)
catch
(exception e)
}}
對於socket關閉的問題。如果關閉了流,則關閉了socket,一般不關閉流,關閉socket即可。
未完待續。。。
11 網路程式設計
目錄 軟體結構 網路程式設計三要素 協議 通訊的規則 埠號 唯一標識計算機中的每乙個程序 tcp通訊程式 socket類 成員方法 serversocket類 通訊過程注意事項 socket.shutdownoutput 通訊過程優化 inputstreamreader類 c s b s tcp 特...
day11 網路程式設計
主要內容 tcp ip四層模型tcp面向連線 三次握手 第一次握手,客戶端向伺服器端發出連線請求,等待伺服器確認。第二次握手,伺服器端向客戶端回送乙個響應,通知客戶端收到了連線請求。第三次握手,客戶端再次向伺服器端傳送確認資訊,確認連線 udp面向無連線 不需要建立連線,直接傳送,每個資料報大小在6...
java高階(三) 網路程式設計
osi模型層次結構圖 從上圖中可以看見,osi模型共分7層,每層的名稱和功能從上圖中都有簡單的解釋,在此不再贅述。1 ip位址 tcp ip tcp ip是一組用於用於實現網路互聯的通訊協議。internet網路體系結構以tcp ip為核心。基於tcp ip的參考模型將協議分為四個層次,分別是 網路...