java网络编程udp_java网络编程(UDP详解)
UDP詳解
一,TCP/IP協議棧中,TCP協議和UDP協議的聯系和區別?
聯系:
TCP和UDP是TCP/IP協議棧中傳輸層的兩個協議,它們使用網絡層功能把數據包發送到目的地,從而為應用層提供網絡服務。
區別:
1. TCP是面向連接的傳輸。UDP是無連接的傳輸。
2. TCP保證數據按照發送順序到達,UDP無法保證。
4. TCP是可靠性傳輸,而UDP則是不可靠傳輸。
5. UDP因為少了很多控制信息,所以傳輸速度比TCP速度快。
6. TCP適合用于傳輸大量數據,UDP適合用于傳輸小量數據。
舉例:TCP的server和client之間通信就好比兩個人打電話。UDP的server和client之間的通信就像兩個人發電報或者發短信。
二,UDP通訊協議的特點:
1. 將數據極封裝為數據包,面向無連接。
2. 每個數據包大小限制在64K中
3.因為無連接,所以不可靠
4. 因為不需要建立連接,所以速度快
5.udp 通訊是不分服務端與客戶端的,只分發送端與接收端。
三,怎樣來編寫UDP?
發送數據步驟:
1.創建socket服務
2.創建數據包
3.將數據封裝到數據包中,添加ip和端口以及數據
4.發送
5.關閉資源
接收數據步驟:
1.創建socket服務,并監聽端口
2.創建數據包,用來接收數據
3.用socket接收數據到數據包中
4.從數據包中取出數據
5.關閉資源
四,代碼實現UDP通信
1.客戶端代碼
1 importjava.io.IOException;2 importjava.net.DatagramPacket;3 importjava.net.DatagramSocket;4 importjava.net.InetAddress;5 importjava.util.Scanner;6
7 public classUser {8 static Scanner sc= newScanner(System.in);9 public static void main(String[] args) throwsIOException {10 //1.創建客戶端套接字
11 DatagramSocket ds = newDatagramSocket();12 //2.創建客戶端發送數據包
13 while(true){14 System.out.println("請輸入要發送的信息:");15 String info =sc.nextLine();16 byte []buf =info.getBytes();17 DatagramPacket dp = newDatagramPacket(buf, buf.length,18 InetAddress.getByName("localhost"), 152);19 //3.發送數據包
20 ds.send(dp);21 //4.結束發送循環
22 if("886".equals(info)){23 break;24 }25 }26 //5.關閉套接字
27 ds.close();28 }29 }
2.服務端代碼
1 importjava.io.IOException;2 importjava.net.DatagramPacket;3 importjava.net.DatagramSocket;4 importjava.net.InetAddress;5
6 public classServer {7 public static void main(String[] args) throwsIOException {8 //1.創建服務端套接字
9 DatagramSocket ds = new DatagramSocket(152);//注意指定端口10 //2.創建接受客戶端信息的空數據包
11 while(true){12 byte [] buf =new byte[1024];13 DatagramPacket dp = newDatagramPacket(buf, buf.length);14 //3.接受數據
15 ds.receive(dp);16 //4.拆分數據
17 byte[] data =dp.getData();18 //5.獲取客戶端IP和主機名
19 InetAddress ip =dp.getAddress();20 String host =ip.getHostName();21 //6.讀取數據
22 String info = new String(buf,0,buf.length);23 System.out.println("來自"+host+"的消息是:"+info);24 ds.close();25 //7.關閉套接字
26 }27 }28 }
精品java學習視頻
java的IO流技術:鏈接:https://pan.baidu.com/s/1KWR9JHQ20uy0mx-1CIBwvA??提取碼:3dn8
總結
以上是生活随笔為你收集整理的java网络编程udp_java网络编程(UDP详解)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python树莓派设备_Python+树
- 下一篇: java集合使用_java集合使用初步