UDP 端到端

 创建发送端

1.建立DatagramSocket对象,该端点建立,系统会随机分配一个端口,如果不想随机分配,可手动指定。

2.将数据进行packet封装,必须指定目的地址和端口。

3.通过socket服务的send方法将该包发出。

4,。将socket关闭。

 1 package UDP;
 2 
 3 import java.io.IOException;
 4 import java.net.DatagramPacket;
 5 import java.net.DatagramSocket;
 6 import java.net.InetAddress;
 7 import java.net.SocketException;
 8 import java.net.UnknownHostException;
 9 
10 public class Demo1 {
11 
12     public static void main(String[] args) throws IOException {
13         
14         DatagramSocket socket = new DatagramSocket();
15     
16         String str = "hello";
17         // 打包封装
18         DatagramPacket packet = new DatagramPacket(str.getBytes(), str.length(), InetAddress.getByName("localhost"),
19                 8000);
20         socket.send(packet);// 发送
21 
22         // 接收
23 
24         byte[] buff = new byte[100];
25         DatagramPacket packet2 = new DatagramPacket(buff, 100);
26         socket.receive(packet2);
27         System.out.println(new String(buff, 0, packet2.getLength()));
28         socket.close();
29     }
30 
31 }

 创建接收端

1.建立DatagramSocket对象,要监听一个端口。

2.通过socket的recevie方法将数据存入数据包中。

3.通过数据包的方法getData()、getAddress()、getPort()、等方法获取包中的指定信息。

4.将socket关闭

 1 package UDP;
 2 
 3 import java.io.IOException;
 4 import java.net.DatagramPacket;
 5 import java.net.DatagramSocket;
 6 import java.net.InetAddress;
 7 import java.net.SocketException;
 8 
 9 public class Demo2 {
10 
11     public static void main(String[] args) throws IOException {
12         //接收
13         DatagramSocket socket = new DatagramSocket(8000);
14         byte[] buff = new byte[100];
15         DatagramPacket packet = new DatagramPacket(buff, 100);
16         socket.receive(packet);
17         System.out.println(new String (buff,0,packet.getLength()));
18 
19         //发送
20         String str = "me too";
21         DatagramPacket packet2 = new DatagramPacket(str.getBytes(), str.length(), packet.getAddress(),
22                 packet.getPort());
23         socket.send(packet2);
24         socket.close();
25 
26     }
27 
28 }
原文地址:https://www.cnblogs.com/the-wang/p/7112272.html