UDP传输
- 1.发送Send
- 创建DatagramSocket,随机端口号。
- 创建DatagramPacket,指定数据、长度、地址、端口。
- 使用DatagramSocket发送DatagramPacket。
- 关闭DatagramSocket。
- 2.接收Receive
- 创建DatagramSocket,指定端口号。
- 创建DatagramPacket,指定数组,长度。
- 使用DatagramSocket接收DatagramPacket。
- 关闭DatagramSocket。
- 从DatagramPacket中获取数据。
- 3.接收方获取ip和端口号
- String ip = packet.getAddress().getHostAddress();
- int port = packet.getPort();
package com.heima.socket;
import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
public class Demo01_Send {
public static void main(String[] args) throws IOException {
String str = "what are you 弄啥呢?";
DatagramSocket socket = new DatagramSocket(); //创建Socket相当于创建码头
DatagramPacket packet = //创建Packet相当于集装箱
new DatagramPacket(str.getBytes(), str.getBytes().length, InetAddress.getByName("127.0.0.1"), 6666);
socket.send(packet); //发货,将数据发出去
socket.close();
}
}
===================================================
package com.heima.socket;
import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
public class Demo01_Receive {
public static void main(String[] args) throws IOException {
DatagramSocket socket = new DatagramSocket(6666); //创建Socket相当于创建码头
DatagramPacket packet = new DatagramPacket(new byte[1024], 1024);//创建Packet相当于创建集装箱
socket.receive(packet); //接货,接收数据
byte[] arr = packet.getData(); //获取数据
int len = packet.getLength(); //获取有效的字节个数
System.out.println(new String(arr,0,len));
socket.close();
}
}