傳輸協議,TCP UDP程式設計的基本步驟

2021-09-13 10:22:41 字數 2492 閱讀 5995

概念

* 傳輸協議:tcp  udp

* tcp:一種面向連線的、可靠的、基於位元組流的運輸層通訊協議,特點:

* 面向連線;點到點的通訊;高可靠性;占用系統資源多、效率低。

*udp:一種無連線的傳輸層協議,提供面向事務的簡單不可靠資訊傳送服務,特點:

* 非面向連線,傳輸不可靠,可能丟失;傳送不管對方是否準備好,接收方

* 收到也不確認;可以廣播傳送;非常簡單的協議,開銷小、效率高。

* 就像寄包裹,不知道什麼時候送到,可能會丟失。

*開發的網路應用程式位於應用層,tcp和udp屬於傳輸層協議,在應用層如何使用

* 傳輸層的服務呢?在應用層和傳輸層之間,則是使用套接字來進行分離。

*套接字socket:就像是傳輸層為應用層開的乙個小口,應用層通過這個小口向遠端

* 傳送資料或者接受遠端發來的資料,那麼資料進出這個小口不知道也不用關心是

* 怎麼傳輸的,這是網路其他層次的工作。

* 基於tcp協議的socket程式設計:通訊雙方需要建立連線,連線建立時雙方存在主次之分。

* 基於udp協議的scoket程式設計:通訊雙方不需要建立連線,雙方平等,比如qq聊天。

tcp程式設計基本步驟:

* tcp程式設計:1.使用基於tcp協議的socket網路程式設計實現。

* 2.tcp協議基於請求-響應模式。

* 客戶端(client)程式;第一次通訊中等待連線的程式

* 被稱為伺服器(server)程式

* 4.利用io流實現資料的傳輸

tcp客戶端:

* 客戶端:

* 1.建立socket(string host,int port)物件 建立連線

* 2.操作:輸入輸出流

* 3.關閉流和socket物件

public class testtcpsocket

public static void socketstring() throws ioexception

}

tcp服務端:

* 服務端:

* 1.建立serversocket(int port)物件

* 2.阻塞、等待連線的建立 accept

* 3.操作:輸入輸出流

* 4.關閉流和socket物件

public class testtcpserver

public static void serverstring() throws ioexception

}

先啟動服務端,再啟動客戶端,注意,兩個埠要一樣,不然會報錯,埠不一樣,客戶端就找不到服務端了。

udp程式設計基本步驟:

* udp程式設計:1.使用基於udp協議的scoket網路程式設計實現。

* 2.資料被封裝成資料報,傳送方將資料報傳送到網路中,

* 資料報在網路中尋找目的地。

* 3.底層實現的是位元組,多個包就是位元組陣列,所以不需要利用io流實現資料的傳輸。

* datagramsocket:用於傳送或接受資料報的套接字。

* datagrampacket:資料報

udp傳送端:

*  傳送端:

* 1.使用 datagramsocket 建立傳送端 指定埠

* 2.準備資料 轉成位元組陣列

* 3.封裝成datagrampacket 資料報

* 4.傳送資料報 send方法

* 5.釋放資源

public class testudpclient

public static void clientstring() throws exception

}

udp接收端:

* udp接收端:

* 1.使用 datagramsocket 建立接收端 指定埠

* 2.準備容器 封裝成datagrampacket 資料報

* 3.阻塞式接受資料報 receive方法

* 4.分析資料 byte getdata()

* getlength()

* 5.釋放資源

public class testudpserver

public static void serverstring() throws exception

}

先執行接收端,在執行傳送端,注意,1.使用 datagramsocket建立的時候,兩個埠不能一樣,不然會衝突,會報address already in use: cannot bind這個錯誤,這是由於同一機子同一協議下埠衝突;2.傳送端封裝成資料報時寫的埠要和接收端的埠一樣,不然會丟失。

傳輸層協議(TCP UDP協議)

tcp和udp都是 tcp ip協議族的傳輸層協議tcp將若干個位元組構成乙個分組,叫報文段 tcp報文段封裝在ip資料報中 tcp建立連線的過程稱為三次握手 女孩想了想認真的問男孩子 你真的要和我在一起嗎?你真的喜歡我嗎 男孩肯定的回答 我是認真的,在一起吧 還有一種情況 男孩在表白女孩後,女孩確...

傳輸層 TCP,UDP協議小小總結

udptcp 是否連線 無連線面向連線 是否可靠 不可靠傳輸,不使用流量控制和擁塞控制 可靠傳輸,使用流量控制和擁塞控制 連線物件個數 支援一對一,一對多,多對一和多對多 只能一對一 傳輸方式 面向報文 面向位元組流 首部開銷 首部開銷小,僅8位元組 最小20位元組,最大60位元組 4bit表是首部...

TCP UDP 網路傳輸七層協議

如果再瀏覽器裡書入dftba.com,瀏覽器怎麼知道伺服器的位址是多少?網際網路是乙個巨型分布式網路,會把資料拆成乙個個資料報來傳輸,比如發的資料很大,比如郵件附件,資料會被拆成多個小資料報,資料報想要在網際網路上傳輸,要符合 網際網路傳輸協議 的標準,簡稱ip,就像郵寄手寫信一樣,郵寄是有標準的,...