使用UDP完成一对一信息的发送与接收
创建发送端
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
public class UdpSet {
public static void main(String[] args) throws Exception {
// while (true) {
DatagramSocket d = new DatagramSocket();
byte[] b = "吁".getBytes();
DatagramPacket w =new DatagramPacket(b,b.length,InetAddress.getByName("172.16.1.108"),10000);
d.send(w);
d.close();
}
}
//}
创建接收端
import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
public class UdpReceipt {
public static void main(String[] args) throws IOException {
// 1:建立udp的socket服务
DatagramSocket d = new DatagramSocket(10000);
// 2:通过receive方法接收数据
// (1)创建保存数据的数据包对象
byte[] b =new byte[1024];
DatagramPacket datagramPacket = new DatagramPacket(b, b.length);
//获取地址 请求端口 存储数据的字节数组 实际长度
while (true) {
//receive是阻塞方法,与scanner的获取数据类似
//当程序执行到这个方法时会暂停运行,当接收到发送端发送的数据后继续执行
d.receive(datagramPacket);
//获取地址、端口号、长度
InetAddress address = datagramPacket.getAddress();
int port = datagramPacket.getPort();//获取请求端口
byte[] data = datagramPacket.getData();//获取存储数据的字节数组
int length = datagramPacket.getLength();//获取数据实际长度
System.out.println(address);
System.out.println(port);
System.out.println(new String(data,0,length));
}
}
}