网络编程,UDP传输,模拟数据的发送接收
1.发送Send
创建DatagramSocket,随机端口号
创建DatagramPacket,指定数据,长度,地址,端口。
使用DatagramSocket发送DatagramPacket
关闭DatagramSocket
2.接收Receive
创建DatagramSocket,指定端口号
创建DatagramSocket,指定数组,长度
使用DatagramSocket接收DatagramSocket
关闭DatagramSocket
从DatagramSocket中获取数据
3.接收方法获取ip和端口号
String ip = packet.getAddress().getHostAddress();
int port = packet.getPort();
模拟数据发送端:
String str = "what are you";
//创建socket相当于创建码头
DatagramSocket socket;
try {
socket = new DatagramSocket();
//创建Packet相当于集装箱
DatagramPacket packet =
new DatagramPacket("str".getBytes(),str.getBytes().length,InetAddress.getByName("127.0.0.1"),6666);
//将数据发出去:发货
socket.send(packet);
//关闭码头(底层是io流所以用完后要关闭)
socket.close();
} catch (IOException e) {
e.printStackTrace();
}
模拟数据接收端:
try {
//创建socket相当于创建码头,指定端口号
DatagramSocket socket1 = new DatagramSocket(6666);
//创建Packet相当于集装箱
DatagramPacket packet1 = new DatagramPacket(new byte[1024],1024);
//接收数据:接货
socket1.receive(packet1);
//获取数据(获取到所有的字节个数)
byte[] arr = packet1.getData();
int len = packet1.getLength();//获取有效的字节个数
System.out.println(new String(arr,0,len));
socket1.close();
} catch (IOException e) {
e.printStackTrace();
}