发送方:
package network.socket;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
/*
* 1. 发送send
* 创建DatagramSocket
*/
public class Send {
public static void main(String[] args) throws Exception{
String str="everyone,大家好!"; //要发送的数据
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(); //底层是IO流,关闭码头
}
}
接收方:
package network.socket;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
/*
* 1. 接收receive
* 创建DatagramSocket,指定端口号
* 创建DatagramPacket,指定数组,长度
* 使用DatagramSocket接收DatagramPacket
* 关闭DatagramSocket
* 从DatagramPacket中获取数据
*/
public class Receive {
public static void main(String[] args) throws Exception{
DatagramSocket socket=new DatagramSocket(6666); //创建码头,要指定端口号
DatagramPacket packet=new DatagramPacket(new byte[1024],1024);
socket.receive(packet); //开始接收
byte[] arr=packet.getData(); //获取数据
int len=packet.getLength(); //获取有效字节个数
System.out.println(new String(arr,0,len));
socket.close();
}
}