首页 > 编程语言 > 详细

Java 键盘录入字符串使用UDP通信进行传输数据

时间:2021-03-12 15:24:15      阅读:15      评论:0      收藏:0      [点我收藏+]

发送端

package UDPDemo;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;

public class SendDemo {
    public static void main(String[] args) throws IOException {
        //创建发送端的Socket对象(DatagramSocket)
        DatagramSocket ds = new DatagramSocket();
        //创建字符缓冲输入流对象,
        //用于存放键盘录入的字符串通过创建InputStreamReader对象,作为参数给到字符缓冲流进行封装
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        //创建字符串对象,用于关闭发送端
        String line;
        //对输入的字符进行判断,如果为889直接返回,发送数据结束
        while ((line = br.readLine()) != null) {
            if ("889".equals(line)) {
                break;
            }
            //创建数据,数据打包调用DatagramSocket对象的send方法发送数据
            byte[] bytes = line.getBytes();
            DatagramPacket dp = new DatagramPacket(bytes, bytes.length, InetAddress.getByName("192.168.1.210"), 10086);
            ds.send(dp);
        }
        // 关闭发送端
        ds.close();
    }
}

接收端

package UDPDemo;

import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;

public class ReceiveDemo {
    public static void main(String[] args) throws IOException {
        //创建接收端的Socket对象(DatagramSocket)
        DatagramSocket ds = new DatagramSocket(10086);
        //while死循环,用于一直接收数据
        while (true) {
            //创建新的数据包,用来存放收到的书局
            byte[] bytes = new byte[1024];
            DatagramPacket dp = new DatagramPacket(bytes, bytes.length);
            //接受数据
            ds.receive(dp);
            //对数据包解析,打印输出
            System.out.println("数据是 " + new String(dp.getData(), 0, dp.getLength()));
        }
    }
}

 

Java 键盘录入字符串使用UDP通信进行传输数据

原文:https://www.cnblogs.com/521521cm/p/14524008.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!