找到主機後,如何可靠、高效地進行資料傳輸(網路通訊協議)
ip:唯一的標識 internet 上的計算機
ipv4:4個位元組組成。以「點分十進位制」表示
ipv6:16個位元組組成。寫成 8 個無符號整數,每個整數用四個十六進製制位表示,數之間用冒號(:)表示
公網位址(全球資訊網使用)
埠被規定為乙個16位的整數:0~65535
在同一主機中,不同的程序有不同的埠
埠被分為:
公認埠:0~1023。被預先定義的服務通訊占用(如:http 占用 80 埠、ftp 占用 21 埠)
註冊埠:1024~49151。分配給使用者程序或應用程式(如:tomcat 占用 8080 埠、mysql 占用 3306 埠)
動態/私有埠:49152~65535
socket = ip + 埠
網路協議太複雜,所以,將通訊協議進行分層。
由上至下為:應用層、傳輸層(tcp、udp)、網路層(ip)、資料鏈路層、物理層
tpc 與 udp 的區別:
tcp 協議:
使用 tcp 協議前,必須先建立 tcp 連線,形成傳輸資料通道
傳輸前,採用「三次握手」方式,點對點通訊,是可靠傳輸
tcp 協議進行通訊的兩個應用程序:客戶端、服務端
在連線中,可進行大資料量的傳輸
傳輸完畢,需要釋放已建立的連線(效率低)
udp 協議:
將資料、源、目的封裝成資料報,不需要建立連線
每個資料報的大小限制在 64k 內
傳送不管對方是否準備好,接收方收到也不確認,不可靠傳輸
可以廣播傳送
傳送資料結束時,無需釋放資源(開銷小、速度快)
場景一:客戶端通過 tcp 協議向服務端傳送資料,服務端接收後,將收到的資料列印到控制台中,並指明來自於哪個客戶端
public
class
tcpserver
*/// 建立乙個位元組資料輸出流
bytearrayoutputstream baos =
newbytearrayoutputstream()
;byte
buffer =
newbyte[5
];int len =0;
// 讀取輸入流中的資料
while
((len = is.
read
(buffer))!=
-1) system.out.
println
(baos.
tostring()
);system.out.
println
("收到了來自於:"
+ socket.
getinetaddress()
.gethostaddress()
+"的資料");
baos.
close()
; is.
close()
; socket.
close()
; ss.
close()
;}}
public
class
tcpclient
}
場景二:客戶端將檔案傳送給服務端,服務端將檔案儲存起來
public
class
tcpserver2
fos.
close()
; is.
close()
; socket.
close()
; ss.
close()
;}}
public
class
tcpclient2
fis.
close()
; os.
close()
; socket.
close()
;}}
場景三:客戶端將檔案傳送給服務端,服務端將檔案儲存起來。並且,服務端需要返回「傳送成功」給客戶端,然後關閉相應連線
public
class
tcpserver3
// 服務端給予客戶端反饋
outputstream os = socket.
getoutputstream()
; string data =
"傳送成功"
; os.
write
(data.
getbytes()
);fos.
close()
; is.
close()
; os.
close()
; socket.
close()
; ss.
close()
;}}
public
class
tcpclient3
// 給出明確指示(傳輸完畢)
socket.
shutdownoutput()
;// 客戶端接收服務端傳送過來的資料
inputstream is = socket.
getinputstream()
; bytearrayoutputstream baos =
newbytearrayoutputstream()
;byte
buffer =
newbyte[20
];int length =0;
while
((length = is.
read
(buffer))!=
-1) system.out.
println
(baos.
tostring()
);fis.
close()
; os.
close()
; baos.
close()
; socket.
close()
;}}
public
class
udpreceiver
}
public
class
udpsender
}
url的基本結構由5部分組成:
《傳輸協議》://《主機》:《埠號》/《檔名》#片段名?引數列表
網路程式設計中TCP UDP區別
tcp和udp的區別 tcp傳輸控制協議 是基於連線的協議,也就是說,在正式收發資料前,必須和對方建立可靠的連線 udp user data protocol,使用者資料報協議 是與tcp相對應的協議。它是面向非連線的協議,它不與對方建立連線,而是直接就把資料報傳送過去!http和https htt...
網路程式設計,tcp udp
架構 程式設計師開發的一種模式 c s架構 客戶端 伺服器模式 b s架構 browser瀏覽器 伺服器模式 b s架構的優勢 統一了應用的介面 網路通訊程式設計 同一臺電腦上兩個py檔案通訊 檔案 兩台電腦 如何通訊?一根網線 多台電腦 如何通訊?交換機 更多台電腦 如何通訊?交換機 路由器 寫乙...
TCP UDP網路程式設計
什麼是計算機網路 網路通訊的兩個要素 ip位址 埠port 通訊協議 tcp實現聊天 tcp檔案上傳實現 初始tomcat udp訊息傳送 udp聊天實現 信件 tcp 連線 建立連線成功 打 udp 傳送了就完事兒 接收 發簡訊 想要達到通訊需要什麼 找到了這個主機,如何傳輸資料?協議 通訊雙方位...