Java网络编程---UDP

客户端

java 复制代码
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
import java.util.Scanner;

public class Client {
    public static void main(String[] args) throws Exception {
        //1.创建客户端对象
        DatagramSocket socket = new DatagramSocket();
        //2.创建数据包对象封装要发出去的数据
        /* public DatagramPacket(byte buf[], int offset, int length,
        InetAddress address, int port)*/
        Scanner sc = new Scanner(System.in);
        while (true){
            //将数据转成字节
            System.out.println("user:");
            String msg = sc.nextLine();
            if ("exit".equals(msg)){
                System.out.println("退出成功!");
                socket.close();
                break;
            }
            byte[] bytes =msg.getBytes();
            DatagramPacket packet = new DatagramPacket(bytes, bytes.length,InetAddress.getLocalHost(),6666);
            //3.发送
            socket.send(packet);
        }
    }
}

服务端

java 复制代码
import java.nio.charset.StandardCharsets;


import java.net.DatagramPacket;
import java.net.DatagramSocket;

public class Server {
    public static void main(String[] args) throws Exception{
        System.out.println("----------服务端-----------");
        //1.创建一个服务端的对象
        DatagramSocket socket = new DatagramSocket(6666);

        //2.创建一个数据包对象  来接数据
        byte[] buffer = new byte[1024 * 64]; //64kb
        DatagramPacket packet = new DatagramPacket(buffer, buffer.length);

        while (true){
            //接收数据
            socket.receive(packet);

            //打印出来
            int len = packet.getLength();
            String  rs =  new String(buffer,0,len, StandardCharsets.UTF_8);
            System.out.println(rs);


            //接收的客户端的信息
            System.out.println(packet.getAddress());
            System.out.println(packet.getPort());
            System.out.println("-----------------------------------------");
        }

    }
}

效果

相关推荐
所愿ღ13 小时前
JavaWeb-Servlet总结及JSP
java·笔记·servlet
杨杨杨大侠13 小时前
Atlas Mapper 教程系列 (4/10):高级映射技巧与类型转换
java·开源·github
杨杨杨大侠13 小时前
Atlas Mapper 教程系列 (3/10):核心注解详解与基础映射
java·开源·github
tqs_1234513 小时前
redis zset 处理大规模数据分页
java·算法·哈希算法
尚学教辅学习资料13 小时前
基于Spring Boot的家政服务管理系统+论文示例参考
java·spring boot·后端·java毕设
杨杨杨大侠13 小时前
Atlas Log 0.2.0 版本
java·github·apache log4j
快乐肚皮13 小时前
TransmittableThreadLocal:穿透线程边界的上下文传递艺术
java
渣哥13 小时前
别再无脑 synchronized 了!Java 锁优化的 7 个狠招
java
Nuyoah11klay14 小时前
华清远见25072班网络编程学习day5
网络
CyHacker_101014 小时前
网络编程-day4
网络