一、網路模型:
osi參考模型
tcp/ip參考模型
網路中裝置的標識
不易記憶,可用主機名
埠號:用於標識程序的邏輯位址,不同程序的標識
有效埠: 0~65535,其中0~1024系統使用或者保留埠
傳輸協議:通訊的規則
常見的協議: tcp、 udp
三、socket
就是為了網路服務提供的一種機制;通訊的兩端都有socket;網路通訊其實就是socket間的通訊;資料在兩個socket間通過io傳輸。
四、tcp和udp
tcp: 建立連線、在連線中進行傳輸、通過三次握手完成連線(是可靠協議)、效率會稍低
socket和serversocket
傳輸步驟:
1、建立客戶端和伺服器端
2、建立連線後,通過socket中的io流進行資料的傳輸
3、關閉socket
————客戶端和伺服器端是兩個獨立的執行程式
客戶端:通過socket建立物件並指定要連線的服務端主機以及埠
socket s = new socket(「192.168.1.1」,9999);outputstream out =s.getoutputstream();
out.write(「hello」.getbytes());
s.close();
伺服器端:建立服務端需要監聽的乙個埠
serversocket ss = new serversocket(9999);socket s =ss.accept ();
inputstream in =s.getinputstream();
byte buf = new
byte[1024];
int num =in.read(buf);
string str = new string(buf,0,num);
system.out.println(s.getinetaddress().tostring()+」:」+str);
s.close();
ss.close();
udp:不需要建立連線、將資料及源和目的封裝成包(限制在64k內)、不可靠協議、速度快
datagramsocket與datagrampacket
傳輸步驟:
1、建立傳送端,接收端;
2、建立資料報;
3、呼叫socket的傳送接受方法;
4、關閉socket
————傳送端和接受端是兩個獨立的執行程式
傳送端:
datagramsocket ds = newdatagramsocket();
byte by =「hello,udp」.getbytes();
datagrampacket dp = new datagrampacket(by,0,by.length,
inetaddress.getbyname(「127.0.0.1」),10000);
ds.send(dp);
ds.close();
接受端:
datagramsocket ds = new datagramsocket(10000);byte by = new
byte[1024];
datagrampacket dp = new
datagrampacket(by,by.length);
ds.receive(dp);
string str = new string(dp.getdata(),0,dp.getlength());
system.out.println(str+"--"+dp.getaddress());
ds.close();
小練習:
udp聊天程式:1.通過鍵盤錄入獲取要傳送的資訊;2.將發生和接受分別封裝到兩個執行緒中。
~~~~~問題分析:
tcp傳輸最容易出現的問題:1、客戶端連線上服務端,兩端都在等待,沒有任何資料傳輸; 2、因為read方法或者readline方法是阻塞式。《解決辦法》1.自定義結束標記 2.使用shutdowninput, shutdownoutput方法。
test:
1、建立乙個群聊伺服器端。
2、客戶端向服務端上傳乙個。
3、客戶端向服務端傳送使用者名稱請求登入,服務端通過驗證,返回「歡迎光臨」,未通過則返回「使用者不存在」。
tcp UDP如何實現可靠傳輸
1 tcp如何實現可靠性傳輸?確認機制 重傳機制 滑動視窗。1.1可靠性 1 應用資料被分割成tcp認為最適合傳送的資料塊。這和udp完全不同,應用程式產生的資料長度將保持不變。由tcp傳遞給ip的資訊單位稱為報文段或段 2 當tcp發出乙個段後,它啟動乙個定時器,等待目的端確認收到這個報文段。如果...
傳輸層和TCP UDP
層傳輸層 定義了一些傳輸資料的協議和埠號 www埠80等 如 tcp 傳輸控制協議,傳輸效率低,可靠性強,用於傳輸可靠性要求高,資料量大的資料 udp 使用者資料報協議,與tcp特性恰恰相反,用於傳輸可靠性要求不高,資料量小的資料,如qq聊天資料就是通過這種方式傳輸的 主要是將從下層接收的資料進行分...
傳輸層協議(TCP UDP協議)
tcp和udp都是 tcp ip協議族的傳輸層協議tcp將若干個位元組構成乙個分組,叫報文段 tcp報文段封裝在ip資料報中 tcp建立連線的過程稱為三次握手 女孩想了想認真的問男孩子 你真的要和我在一起嗎?你真的喜歡我嗎 男孩肯定的回答 我是認真的,在一起吧 還有一種情況 男孩在表白女孩後,女孩確...