• 技术文章 >java >java基础

    java UDP通信的原理

    小妮浅浅小妮浅浅2021-08-03 09:28:26原创4134

    原理

    1、UDP协议是一种不可靠的网络协议,它在通信的两端各建立一个Socket对象,但是这两个Socket只是发送,接收数据的对象

    2、基于UDP协议的通信双方而言,没有所谓的客户端和服务器端概念

    Java提供了DatagramSocket类作为基于UDP协议的Socket

    实例

    package test;
     
    import java.io.BufferedReader;
    import java.io.InputStreamReader;
    import java.net.DatagramPacket;
    import java.net.DatagramSocket;
    import java.net.InetAddress;
     
    /**
     * UDPCLient deom
     * @author <dht925nerd@126.com>
     */
    public class UDPClient {
        public static void main(String[] args) throws Exception {
            DatagramSocket clientSocket = new DatagramSocket();
            BufferedReader inFromUser =
                    new BufferedReader(
                            new InputStreamReader(System.in)
                    );
            //获取本地 IP 地址
            InetAddress IPAddress = InetAddress.getLocalHost();
            byte[] sendData;
            byte[] receiveData = new byte[1024];
            System.out.println("请输入一句英文,服务器会返回其大写形式(输入exit退出)");
            while (true) {
                String sentence = inFromUser.readLine();
                if (sentence.equals("exit")) break;
                sendData = sentence.getBytes();
                //创建发送数据报包,并标注源地址#,目的地址#
                DatagramPacket sendPacket =
                        new DatagramPacket(sendData, sendData.length, IPAddress, 9876);
                //发送数据报包
                clientSocket.send(sendPacket);
                //创建接收数据报包
                DatagramPacket receivePacket =
                        new DatagramPacket(receiveData, receiveData.length);
                //接收服务器的数据报包
                clientSocket.receive(receivePacket);
                String modifiedSentence = new String(receivePacket.getData());
                System.out.println("FROM SERVER: " + modifiedSentence);
            }
            clientSocket.close();
        }
    }

    以上就是java UDP通信的原理,希望对大家有所帮助。更多Java学习指路:Java基础

    本教程操作环境:windows7系统、java10版,DELL G3电脑。

    专题推荐:java udp
    上一篇:java网络编程的三要素 下一篇:java中UDP如何发送数据

    相关文章推荐

    • java单例模式中的Holder是什么• java枚举类型的原理• java静态方法和非静态方法的介绍• java io和nio的区别• java进程和线程的关系• Java守护线程和用户线程的区别• Java runnable和callable的异同• java sleep()和wait()的区别• Java用户线程是什么• java守护线程的注意事项• java守护线程的执行优先级• java泛型类的使用语法• java泛型接口的使用注意• java方法参数中通配符的使用• java网络编程的三要素

    全部评论我要评论

    © 2021 Python学习网 苏ICP备2021003149号-1

  • 取消发布评论
  • 

    Python学习网