网络编程,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();
}

 

 

 

 

posted @ 2021-04-25 19:56  一块  阅读(248)  评论(0编辑  收藏  举报