3.傳輸協議:通訊的規則:常用tcp和udp
二.tcp和udp的用途
udp:
1.將資料來源和目的封裝到資料報中,不需要建立連線
2.每個資料報的大小限制在64k以內
3.因無連線,是不可靠協議
4.不需要建立連線,速度快
主要用於:聊天,對講機就是udp的,面向無連線。即不管在不在,知不知道,它只管傳送,求的是速度。
也不管丟不丟資料,追求速度快。資料被分成包分批傳輸。
tcp:
1.建立連線,形成傳輸資料的通道。
2.在連線中進行大量資料的傳輸。
3.通過三次握手完成連線,是可靠協議。
4.必須建立連線,效率會少低
主要用於:**通話。必須連線,對方同意才可以傳送資料,不能丟失資料。
所以,在使用中:
當對可靠性的要求不是很高,對準確性無要求(不需要準確儲存),但要求速度快時,可以用udp.
類似於聊天,對講機等聲音方面的業務。
當對可靠性要求比較高,必須要有較高的可靠性時就用tcp,但速度會稍微降低。如檔案和程式等。
三.傳輸
1.udp傳輸
udp兩個端點:udp傳送端和udp接收端
udp傳送端
1.建立udp的socket服務。
datagramsocket ds=new datagramsocket()
2.明確資料,並將資料封裝到資料報中。
byte data="datadatadata".getbytes();
datagrampacket dp=new datagrampacket(buf, buf.length , inetaddress.getbyname(『ip』),port );
3.用socket服務的send方法將資料報傳送出去
ds.send(dp);
4.關閉資源
ds.close();
udp接收端
1.建立udp的socket服務。
datagramsocket ds=new datagramsocket()
2.定義資料報,用於儲存資料。
byte buf=new byte[1024];
datagrampacket dp=new datagrampacket(buf, buf.length );
3.用socket服務的receive方法將收到的資料儲存到定義好的資料報中
ds.receive(dp);
4.通過資料報的特有方法獲取到具體的資料內容,如ip,埠,資料等。
string ip=dp.getaddress().gethostaddress();
string data=new string(dp.getdata() , 0 , dp.getlength());
int port=dp.getport();
5.關閉資源
ds.close();
2.tcp傳輸
tcp兩個端點:tcp客戶端和tcp伺服器端
tcp客戶端
1.建立tcp的socket服務,明確位址和埠。
socket s=new socket(ip,port);
2.獲取socket輸出流,發給服務端
outputstream out=s.getoutputstream();
out.write("".getbytes());
3.獲取socket輸入流
inputstream in=s.getinputstream();
4.關閉資源
s.close();
tcp伺服器端
1.建立tcp服務端的socket服務,並監聽乙個埠。
serversocket ss=new serversocket(port);
2.通過accept方法獲取連線的客戶端物件
socket s=ss.accept();
3.獲取客戶端傳送過來的資料
inputstream in=s.getinputstream();
4.關閉資源
s.close();
ss.close();
TCP知識點記錄
syn 占用乙個序列號 fin 占用乙個序列號 ack 不占用序列號 mss選項通常在通訊的第乙個報文段,即syn報文段中指明,通知對端本端能接收的最大長度報文段 mss 1024 傳送端a 接收端b 如果此時接收端b向傳送端a傳送的報文段長度大於1024,那麼傳送端a將不接受此報文段 win 40...
TCP面試知識點
最主要的特點 1.tcp是面向連線的運輸層協議 2.tcp是點對點的 3.tcp提供可靠交付的服務 4.tcp提供全雙工通訊。允許通訊雙方的應用程序在任何時候都能傳送資料。5.面向位元組流,這個和udp不同,udp是面向報文的。流指的是流入到程序或者從程序流出的位元組序列。也就是說tcp和udp在傳...
TCP和UDP知識總結
1.tcp粘包 tcp是面向連線 流式傳送的,沒有明確的邊界定義。他有乙個緩衝區,每過一段時間或者快取滿了就傳送出去,造成一次傳送的資料可能是多個包或者包的一部分,這就是傳送端的粘包。接收端的粘包指應用程式沒有及時處理緩衝區中的資料,後續到達的資料繼續放到快取中。解決方法 a.對傳送的資料劃分邊界,...