tcp(transmission control protocol 傳輸控制協議)是一種面向連線的、可靠的、基於位元組流的傳輸層通訊協議,由ietf的rfc 793定義。
當客戶和伺服器彼此交換資料前,必須先在雙方之間建立乙個tcp連線,之後才能傳輸資料。tcp提供超時重發,丟棄重複資料,檢驗資料,流量控制等功能,保證資料能從一端傳到另一端。
tcp是網際網路中的傳輸層協議,使用三次握手協議建立連線,而終止乙個連線要經過四次揮手。詳情:三次握手和四次揮手。
**基本實現:
socket:此類實現客戶端套接字(也可以就叫「套接字」)。
serversocket:此類實現伺服器套接字。
注意:服務端和客戶端只是角色上的分配,當兩者一旦產生連線,則沒有明確角色
兩者之間的通訊都是通過socket來完成
accept()偵聽並接受到此套接字的連線。如果沒有連線請求,則會阻塞等待
getinputstream() 返回此套接字的輸入流。
getoutputstream() 返回此套接字的輸出流。
//客戶端
//socket
//此類實現客戶端套接字(也可以就叫「套接字」)。套接字是兩台機器間通訊的端點。
public class testclient
}}
//在連線成功之前,是乙個角色分配
//serversocket
//此類實現伺服器套接字。
//服務端
public class testserver
// while(true)
}}
//負責輸入
public class testin implements runnable
@override
public void run()
} catch (ioexception e)
}}
udp 是user datagram protocol的簡稱, 中文名是使用者資料報協議,是osi(open system interconnection,開放式系統互聯) 參考模型中一種無連線的傳輸層協議,提供面向事務的簡單不可靠資訊傳送服務,ietf rfc 768是udp的正式規範。
它只是把應用程式傳給ip層的資料報傳送出去,但是並不能保證它們能到達目的地。由於udp在傳輸資料報前不用在客戶和伺服器之間建立乙個連線,且沒有超時重發等機制,故而傳輸速度很快。
**基本實現:
//udp:基本流程
//1步:建立datagramsocket物件,接受端需要指定埠號,傳送端預設無參
//2步:建立datagrampacket資料報物件,接受端需要指定接受大小,傳送端需要指定inetaddress和port
//3步:datagramsocket中的send()傳送資料報,receive()接受資料報
//注意:send不管是否有接收端,不會等待接收端,直接傳送出去
//receive不管傳送端所傳送資料大小,會等待資料報接受
//datagrampacket(byte buf, int length, inetaddress address, int port)
//傳送方
public class testsend
}
//接受方
public class testrecive
}
1、tcp面向連線,當客戶和伺服器彼此交換資料前,必須先在雙方之間建立乙個tcp連線,之後才能傳輸資料;
udp是無連線的,面向事務,無需建立連線就可以傳送封裝包資料。
2、tcp是可靠的:tcp提供超時重發,丟棄重複資料,檢驗資料,流量控制等功能,保證資料的傳送和接收順序;
udp不可靠:udp盡最大努力交付,即不保證可靠交付。
3、tcp連線只能是點到點的;
udp支援一對一,一對多,多對一和多對多的互動通訊, 由於傳輸資料不建立連線,因此也就不需要維護連線狀態,包括收發狀態等,因此一台服務機可同時向多個客戶機傳輸相同的訊息。
4、tcp對系統資源消耗大;
udp:由於udp的特性,它不屬於連線型協議,因而具有資源消耗小,處理速度快的優點。
5、tcp:基於位元組流,流模式;
udp:將網路資料流量壓縮成資料報的形式,資料報模式。
6、tcp:大量資料;udp:少量資料。
python網路程式設計 TCP與UDP
tcp與udp的區別 tcp速度慢,穩定。udp速度快,不穩定,易丟資料。udp 客戶端 import socket clientsocket socket.socket socket.af inet,socket.sock dgram 建立套接字 sendtoaddr 192.168.1.111 ...
網路程式設計TCP與UDP的區別
為了方便開發網路應用程式,美國伯克利大學在unix上實現的一種應用程式訪問網路的通訊協議socket,socket的出現使程式設計師可以方便的訪問tcp ip transmission control protocol internet protocol 即傳輸控制協議 網間協議 使用tcp ip的...
網路程式設計之TCP與UDP協議
tcp udp對比 tcp面向連線 如打 要先撥號建立連線 udp 是無連線的,即傳送資料之前不需要建立連線 tcp提供可靠的服務。也就是說,通過tcp連線傳送的資料,無差錯,不丟失,不重複,且按序到達 udp盡最大努力交付,即不保證可靠交付 每一條tcp連線只能是點到點的 udp支援 對一,對多,...