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("-----------------------------------------");
        }

    }
}

效果

相关推荐
嘻哈baby14 分钟前
游戏/远程桌面的网络延迟优化:从TCP拥塞控制到智能选路
网络·tcp/ip·游戏
TT哇19 分钟前
【Database Navigator 插件】idea 社区版连接 mysql 数据库
java·数据库·mysql·intellij-idea·database
shcoc23 分钟前
备用 申请acme 申请ssl
网络·网络协议·ssl
Tony__Ferguson23 分钟前
抽奖系统测试报告
java·功能测试·模块测试
做人不要太理性24 分钟前
【Linux系统】ELF 文件格式的硬核揭秘
java·linux·服务器
网络小白不怕黑24 分钟前
Docker容器网络:从容器互联到跨主机通信
网络·docker·容器
zhglhy26 分钟前
Jaccard相似度算法原理及Java实现
java·开发语言·算法
m0_4711996333 分钟前
【vue】收银界面离线可用,本地缓存订单,网络恢复后同步
网络·vue.js·缓存
啥都不懂的小小白39 分钟前
Java日志篇3:Logback 配置全解析与生产环境最佳实践
java·开发语言·logback
江沉晚呤时40 分钟前
延迟加载(Lazy Loading)详解及在 C# 中的应用
java·开发语言·microsoft·c#