• UDP发送端&UDP接收端


    UDP发送端:

    import java.io.IOException;
    import java.net.DatagramPacket;
    import java.net.DatagramSocket;
    import java.net.InetAddress;
    import java.net.SocketException;
    import java.net.UnknownHostException;
    
    public class UdpSendDemo {
    
        public static void main(String[] args) throws IOException {
    
            /*
             * 需求:建立udp发送端
             * 思路:
             * 1.建立可以实现udp传输的socket服务
             * 2.明确具体发送的数据
             * 3.通过socket服务将具体的数据发送出去
             * 4.关闭服务
             */
            
            System.out.println("udp发送端启动.....");
            
            //1.创建udp服务
            DatagramSocket ds = new DatagramSocket(1025);
            
            //2.明确数据
            String s = "注意啦,UDP来了";
            
            //3.发送数据,将数据封装到数据包中。
                //3.1将数据封装到数据包对象中,数据汇明确目的地址和端口
            byte[] buf = s.getBytes();
            DatagramPacket dp = new DatagramPacket(buf, buf.length, 
                    InetAddress.getByName("dell-pc"),10000);
            
                //3.2发送
            ds.send(dp);
            
            ds.close();
            
        }
    
    }

    UDP接收端:

    import java.io.IOException;
    import java.net.DatagramPacket;
    import java.net.DatagramSocket;
    import java.net.SocketException;
    
    public class UdpReceiveDemo {
    
        public static void main(String[] args) throws IOException {
            
            /*
             * 创建udp的接收端
             * 思路:
             * 1.创建socket服务,明确一个端口。
             * 2.收数据
             * 3.将其中所需要的数据取出来。ip,data,port
             * 4.关闭资源
             */
            
            System.out.println("udp接收端启动了.....");
            //1.创建socket服务
            DatagramSocket ds = new DatagramSocket(10000);
            
            //2.使用socket的接受方法,接收数据,需要到收到的数据存储到数据包中
            //可以通过数据包对象的方法对收到的数据进行解析
                //2.1创建一个数据包
            byte[] buf = new byte[1024];
            DatagramPacket dp = new DatagramPacket(buf, buf.length);
            
            ds.receive(dp);//阻塞式方法
            
            //3.通过数据包对象解析收到的数据,使用数据包的方法
            String ip = dp.getAddress().getHostAddress();
            int port = dp.getPort();
            //获取文字数据
            String str = new String(dp.getData(),0,dp.getLength());
            System.out.println(ip+":"+port+"------"+str);
            
            //4.关闭资源
            ds.close();
        
        }
    
    }
  • 相关阅读:
    梦想就是梦想,不要让它成为杯具
    程序员,离开了库你还能干什么?
    采用WPF框架编写的3D软渲染Demo
    what the hell with Gimbal Lock?
    FX Composer VS RenderMonkey 使用对比之 FX Composer篇
    为什么你应该使用OpenGL而不是DirectX?
    游戏中的夜视效果实现
    {转}深入浅出之正则表达式(一)
    正则表达式30分钟入门教程版本:v2.31 (2009411) 作者:deerchao 转载请注明来源
    2013年
  • 原文地址:https://www.cnblogs.com/qjlbky/p/5931190.html
Copyright © 2020-2023  润新知