zoukankan      html  css  js  c++  java
  • java学习笔记 UDP协议

    TCP的所有操作都建立在可靠的链接

    UDP(数据报协议)发送的消息对方并不一定会接收到,所有的信息都是以数据报的形式发出

    使用DatagramSocket类和DatagramPacket类完成操作

    服务端UDP:

    import java.net.*;
    import java.io.*;
    
    //定义服务端接收信息
    public class TestUdpServer {
        public static void main(String[] args) {
            try {
                DatagramSocket ds = new DatagramSocket(9000);//设定监听端口号
                byte bytes[] = new byte[1024];//1KB
                DatagramPacket dp = new DatagramPacket(bytes,bytes.length);//DatagramPacket(byte[] buf, int length)构造方法
                //设定循环接收
                String str = null;
                while (true) {
                    ds.receive(dp);//阻塞式方法,一直到接收到数据才解锁
                    System.out.println("接收数据 : ");
                    str = new String(bytes,0,dp.getLength());    //注意receive之后,dp填充的是bytes数组
                    System.out.println(str + ": "+ dp.getAddress().getHostName() + "-----" + dp.getSocketAddress());
                }
            }catch(SocketException e1) {
                e1.printStackTrace();    
            }catch(IOException e2) {
                e2.printStackTrace();    
            }
        }    
    }

    客户端UDP:

    import java.net.*;
    import java.io.*;
    
    //定义客户端发送信息
    public class TestUdpClient {
        public static void main(String[] args) {
            try {
                DatagramSocket ds = new DatagramSocket(8888);//设定监听端口
                String str = "Hello Word!";
                byte bytes[] = str.getBytes();
                //DatagramPacket(byte[] buf, int offset, int length, SocketAddress address)
                //InetSocketAddress(InetAddress addr, int port)
                DatagramPacket dp = new DatagramPacket(bytes,0,bytes.length,new InetSocketAddress("192.168.0.121",9000));
                ds.send(dp);
                ds.close();
            }catch(SocketException e) {
                e.printStackTrace();    
            }catch(IOException e2) {
                e2.printStackTrace();    
            }
        }    
    }

    结果:

    r1

  • 相关阅读:
    自我介绍
    第一学期第一周学习总结
    2020-2021-1 20201332杨赛 《信息安全专业导论》第一周学习总结
    自我介绍
    2020-2021-1 20201307 《信息安全专业导论》第2周学习总结
    师生关系
    教材快速浏览
    2020-2021-1 20201307 《信息安全专业导论》第一周学习总结
    自我介绍
    20201319《信息安全导论》第一周学习总结
  • 原文地址:https://www.cnblogs.com/yhwsy/p/5829510.html
Copyright © 2011-2022 走看看