通過socket實現DUP程式設計

weixin_34208283發表於2016-09-18

UDP 程式設計:
特點:udp協議是無連線,無狀態,無序的、不可靠的。
優點:速度快。
原理:將需要傳送的資訊封裝在資料包(Datagram),在資料包裡指明Socket主機和埠號。然後傳送出去。

擴充套件:TCP、UDP協議詳解

使用的操作類:

  • DatagramPacket 表示資料包包

文件解釋:
此類表示資料包包。
資料包包用來實現無連線包投遞服務。每條報文僅根據該包中包含的資訊從一臺機器路由到另一臺機器。從一臺機器傳送到另一臺機器的多個包可能選擇不同的路由,也可能按不同的順序到達。不對包投遞做出保證。

2916604-a2e8575b2e90a3d2.png
  • DataSocket 用來傳送和接收資料包包的套接字

文件解釋:
此類表示用來傳送和接收資料包包的套接字。
----資料包套接字是包投遞服務的傳送或接收點。每個在資料包套接字上傳送或接收的包都是單獨編址和路由的。從一臺機器傳送到另一臺機器的多個包可能選擇不同的路由,也可能按不同的順序到達。
----在 DatagramSocket 上總是啟用 UDP 廣播傳送。為了接收廣播包,應該將 DatagramSocket 繫結到萬用字元地址。在某些實現中,將 DatagramSocket 繫結到一個更加具體的地址時廣播包也可以被接收。
示例:DatagramSocket s = new DatagramSocket(null); s.bind(new InetSocketAddress(8888));這等價於:DatagramSocket s = new DatagramSocket(8888); 兩個例子都能建立能夠在 UDP 8888 埠上接收廣播的 DatagramSocket。


伺服器端實現步驟:
1、建立DatagramSocket,指定埠號
2、建立DatagramPacket
3、接收客戶端傳送的資料資訊
4、讀取資料

服務端具體程式碼:

2916604-1c5eb733fc9c3a1b.png

客戶端:
1、定義傳送資訊
2、建立DatagramPacket:包含將要傳送資訊
3、建立DatagramSocket
4、傳送資料
客戶端具體程式碼:

2916604-399d932e0c888864.png

輸出結果:

2916604-ac1c1005ee11cd9d.png
2916604-edcc11e8dd39c925.png

相關文章