一、前言:
二、介紹:
TCP ,也就是之前提到過的Socket,使用方式是先建立好伺服端與個人端的連線再做溝通,而UDP的作法不同,而是不管有沒有連到,先處理再說
UDP 在Java裡是使用一個叫DatagramSocket的類別來做處理,UDP要注意的是,他並不會分所謂的伺服端和個人端
先簡單建立物件,後面的port是指定連接埠,如果不指定,則會隨機找沒在用的port來使用
要溝通當然還要另一端
接下來我把有指定port當伺服端,所以它要接收資料並打印出來
要注意的是,DatagramSocket只能傳byte陣列,並且要包成封包(DatagramPacket)來傳輸,再來是個人端
個人端的DatagramPacket記得要加上地址,就像郵差送信,沒寫地址會不知道要送去哪裡
執行看看吧
要回傳資料的話,直接從DatagramPacket拿對方的地址和連接埠,就能原路返回了
三、比較:
優點:
TCP: 進行傳輸時能確保有人能接收,會自動確認資料順序與確保資料完整性
UDP: 不必確定有人接受就能直接開始傳輸,也不會因為太久沒回應而Timeout
缺點:
TCP: 必須要和對方接上才能開始傳輸,會因為太久未接收資料而Timeout
UDP: 封包有資料量上限(65536個byte),且有可能丟了資料,但對方沒收到,各封包接收順序因網路狀況與傳輸路徑而有所更動
四、連結: