zoukankan      html  css  js  c++  java
  • Java 简单UDP通信

    发送端

    import java.net.DatagramPacket;
    import java.net.DatagramSocket;
    import java.net.InetSocketAddress;
    import java.net.SocketException;
    
    /**
     * UDP 发送端
     * @author Administrator
     *
     */
    public class Demo2 {
        public static void main(String[] args) throws Exception {
            
            /**
             * 准备发送端
             * DatagramSocket()
             * 构造一个数据报套接字绑定到本地主机机器上的任何可用的端口。 
             */
            DatagramSocket ds = new DatagramSocket();
            
            /**
             * 准备数据包
             *1、 DatagramPacket(byte[] buf, int length)
             * 构造一个 DatagramPacket length接收数据包的长度
             *2、 String的getBytes()
             * 方法是得到一个操作系统默认的编码格式的字节数组
             *3、 setSocketAddress()
             * 设置SocketAddress(通常是IP地址+端口号)都的远程主机发送数据报。
             * 4、InetSocketAddress(InetAddress addr, int port)
             * 创建一个套接字地址的IP地址和端口号。 
             */
            String str = "你好,UDP";
            byte[] ch = str.getBytes();
            
            DatagramPacket dp = new DatagramPacket(ch, ch.length);
            dp.setSocketAddress(new InetSocketAddress("127.0.0.1", 12345));
            
            // 发送数据
            ds.send(dp);
            
            // 关闭套接字
            ds.close();
            
        }
    }

    接收端

    import java.net.DatagramPacket;
    import java.net.DatagramSocket;
    import java.net.SocketException;
    
    /**
     * UDP 接收端
     * @author Administrator
     *
     */
    public class Demo3 {
        public static void main(String[] args) throws Exception {
            
            // 创建接收端
            DatagramSocket ds = new DatagramSocket(12345); 
            
            /**
             * 接收数据包
             * receive(DatagramPacket p)
             * 从这个套接字接收数据报包。 
             */
            byte[] data = new byte[1024];
            DatagramPacket dp = new DatagramPacket(data, data.length);
            ds.receive(dp);
            
            // 获取接受到的信息
            String str = new String(data, 0, dp.getLength());
            System.out.println(str);
            
            // 关闭接收端
            ds.close();
        }
    }
  • 相关阅读:
    android 之 ListView相关
    android 之 菜单
    android 之 Dialog
    android 之 View
    android 之 service
    android 之 Intent、broadcast
    Service Broadcast简单音乐播放功能
    剑指offer面试题43:n个筛子的点数
    C# LINQ语法
    C# Linq
  • 原文地址:https://www.cnblogs.com/chuijingjing/p/9544159.html
Copyright © 2011-2022 走看看