学会使用 Udp 发送和接收数据

176 阅读1分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

1.写一服务器,接收客户端的发出的数据,并显示出来

  1. 写一个客户端的程序,向服务器发出数据 客户端发出的数据从键盘中输入,可以输入很多内容 当输入 exit 时,退出信息发送

实现代码:

 // 服务器端
 package com.zhangyufan.net;
 ​
 import java.net.DatagramPacket;
 import java.net.DatagramSocket;
 ​
 public class UdpServer {
     public static void main(String[] args) throws Exception {
         DatagramSocket ds = new DatagramSocket(10000);
         System.out.println("服务器启动,等待接受数据");
         while (true) {
             byte[] b = new byte[1024];
             DatagramPacket dp = new DatagramPacket(b, b.length);
             ds.receive(dp);
             System.out.println("接收到的数据为:" + new String(dp.getData(), 0, dp.getLength()));
         }
     }
 }
 //客户端
 package com.zhangyufan.net;
 ​
 import java.io.BufferedReader;
 import java.io.InputStreamReader;
 import java.net.DatagramPacket;
 import java.net.DatagramSocket;
 import java.net.InetAddress;
 ​
 public class UdpClient {
     public static void main(String[] args) throws Exception {
         System.out.println("请输入任意内容(输入exit则退出信息发送,否则继续输入):");
         DatagramSocket ds = new DatagramSocket();
         BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
         String str;
         while ((str = br.readLine()) != null) {
             if ("exit".equals(str)) {
                 System.out.println("退出信息发送!");
                 break;
             }
             byte[] b = str.getBytes();
             DatagramPacket dp = new DatagramPacket(b, b.length, InetAddress.getByName("localhost"), 10000);
             System.out.println("发送数据");
             ds.send(dp);
             System.out.println("请继续输入:");
         }
         ds.close();
     }
 }

运行结果:

客户端

在这里插入图片描述

服务器端

在这里插入图片描述