UDP网络编程的接受与发送信息

news/2024/5/18 15:29:45 标签: 网络, udp, 网络协议
/发送端B===>可以接受数据
public class UDPSenderB {
    public static void main(String[] args) throws IOException {
        //创建一个DatagramSocket 对象,准备发送和接受数据
        DatagramSocket socket = new DatagramSocket(9998);
        //将需要发送的数据,封装到DatagramPacket对象
        byte[] data = "hello “明天吃火锅~".getBytes();
        DatagramPacket packet = new DatagramPacket(data, 0, data.length, InetAddress.getLocalHost(), 9999);
        socket.send(packet);

        //现在接受A发送的信息
        data = packet.getData();
        int len = packet.getLength();
        packet = new DatagramPacket(data, data.length);
        socket.receive(packet);
        String s = new String(data,0,len);
        System.out.println(s);

        System.out.println("UDPB端已经退出~");
        //关闭资源
        socket.close();
    }
}
public class UDPReceiverA {
    public static void main(String[] args) throws IOException {
        //1.创建一个DatagramSocket 对象,准备在9999接收数据
        DatagramSocket socket = new DatagramSocket(9999);
        //2.构建一个DatagramPacket对象,准备接受数据
        //一个数据包最大为64K===>2^16-1
        byte[] buf = new byte[1024];
        DatagramPacket packet = new DatagramPacket(buf, buf.length);
        //3.调用接受方法,将通过网络传输的DatagramPacket对象
        //填充到packet对象
        System.out.println("正在等待接收数据...");
        socket.receive(packet);

        //现在将数剧进行解包
        int len = packet.getLength();
        byte[] bytes = packet.getData();
        String s = new String(bytes,0,len);
        System.out.println("接收到的数据为:"+s);

        //现在发送数据
        byte[] bytes1 = "好的,明天见!".getBytes();
        DatagramPacket packet1 =new DatagramPacket(bytes1,0,bytes1.length, InetAddress.getLocalHost(),9998);
        socket.send(packet1);

        System.out.println("UDPA端已经退出~");
        //关闭数据流
        socket.close();
    }
}

 


http://www.niftyadmin.cn/n/5141400.html

相关文章

十九、类型信息(5)

动态代理 _代理_是基本的设计模式之一。一个对象封装真实对象,代替其提供其他或不同的操作—这些操作通常涉及到与“真实”对象的通信,因此代理通常充当中间对象。这是一个简单的示例,显示代理的结构: interface Interface {voi…

Nacos 原理详解

一. 背景 现如今市面上注册中心的轮子很多,我实际使用过的就有三款:Eureka、Nacos,Zookeeper、Consul 由于当前参与Nacos 集群的维护和开发工作,期间也参与了 Nacos 社区的一些开发和 bug fix 工作,过程中对 Nacos 原…

基站/手机是怎么知道信道情况的?

在无线通信系统中,信道的情况对信号的发送起到至关重要的作用,基站和手机根据信道的情况选择合适的资源配置和发送方式进行通信,那么基站或者手机是怎么知道信道的情况呢? 我们先来看生活中的一个例子,从A地发货到B地…

PHP在线客服系统平台系统源码+完全开源 带完整的搭建教程

在线客服系统已经成为企业与用户进行实时沟通的重要工具。PHP作为一种流行的服务器端脚本语言,具有高效、稳定和易用性等优点,因此被广泛应用于在线客服系统的开发。今天罗峰来给大家介绍一款PHP在线客服系统平台系统源码,源码完全开源&#…

AM@微分方程相关概念@线性微分方程@一阶线性微分方程的通解

文章目录 abstract引言 一般的微分方程常微分方程微分方程的解隐式解通解和特解初始条件初值问题微分方程的积分曲线 线性微分方程一阶线性微分方程一阶齐次和非齐次线性微分方程一阶齐次线性微分方程的解一阶非齐次线性微分方程的解 abstract AM微分方程相关概念线性微分方程…

【6】c++11新特性(稳定性和兼容性)—>Lambda表达式

基本用法 lambda表达式是c最重要也是最常用的特性之一,这是现代编程语言的一个特点,lambda表达式有如下的一些优点: (1)声明式的编成风格:就地匿名定义目标函数活着函数对象,不需要额外写一个命…

AcWing 102. 最佳牛围栏(前缀和+二分+DP)

AcWing 102. 最佳牛围栏 1、问题 2、分析 (1)暴力做法 看到这道题以后,我们可以先想一个最暴力的做法,就是我们去枚举所有长度至少为 F F F的区间,然后求出这个区间的和,再求出这个区间的平均值。最后在…

Macos下安装使用Redis

Redis 是一个基于内存的key-value的结构数据库适合存储热点数据 Macos安装Redis https://redis.io/docs/getting-started/installation/install-redis-on-mac-os/安装redis brew install redis查看安装信息: brew info redis前台启动redis: redis-server后台启…