java的UDP通信[通俗易懂]

java的UDP通信[通俗易懂]importjava.io.IOException;importjava.net.DatagramPacket;importjava.net.DatagramSocket;/*UDP接收

大家好,又见面了,我是你们的朋友全栈君。


import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;

/*
    UDP接收数据:
        因为接收端不知道发送端什么时候停止发送,故采用死循环接收
 */
public class ReviceUdp {
    public static void main(String[] args) throws IOException {
        //创建接收端的Socket对象(DatagramSocket)
        DatagramSocket ds = new DatagramSocket(12345);

        while (true) {
            //创建一个数据包,用于接收数据
            byte[] bys = new byte[1024];
            DatagramPacket dp = new DatagramPacket(bys, bys.length);

            //调用DatagramSocket对象的方法接收数据
            ds.receive(dp);

            //解析数据包,并把数据在控制台显示
            System.out.println("数据是:" + new String(dp.getData(), 0, dp.getLength()));
        }

        //关闭接收端
//        ds.close();
    }
}

package mystring.demo2;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;

/*
    UDP发送数据:
        数据来自于键盘录入,直到输入的数据是886,发送数据结束
 */
public class SendUdp {
    public static void main(String[] args) throws IOException {
        //创建发送端的Socket对象(DatagramSocket)
        DatagramSocket ds = new DatagramSocket();

        //自己封装键盘录入数据
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        String line;
        while ((line = br.readLine()) != null) {
            //输入的数据是886,发送数据结束
            if ("886".equals(line)) {
                break;
            }

            //创建数据,并把数据打包
            byte[] bys = line.getBytes();
            DatagramPacket dp = new DatagramPacket(bys, bys.length, InetAddress.getByName("LAPTOP-9D3ST92M"), 12345);

            //调用DatagramSocket对象的方法发送数据
            ds.send(dp);
        }

        //关闭发送端
        ds.close();
    }
}


版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/155247.html原文链接:https://javaforall.net

(0)
上一篇 2022年7月2日 下午3:00
下一篇 2022年7月2日 下午3:16


相关推荐

  • 临时关闭Mysql ONLY_FULL_GROUP_BY

    临时关闭Mysql ONLY_FULL_GROUP_BY

    2021年11月8日
    56
  • 安全帽识别 安全帽佩戴识别 安全帽检测 安全帽分类 yolo安全帽识别

    安全帽识别 安全帽佩戴识别 安全帽检测 安全帽分类 yolo安全帽识别基于深度学习的安全帽佩戴检测安全帽识别安全帽检测安全帽分类yolo安全帽识别yolo安全帽tinyyolo安全帽识别安卓安全帽识别c++安全帽识别源码交流加wxdeeplearning_gogogo效果很棒,不服来战换不多说,奉上效果图…

    2022年5月19日
    41
  • windows系统如何cmd查看端口被占用、杀进程「建议收藏」

    windows系统如何cmd查看端口被占用、杀进程「建议收藏」首先是启动windows的命令窗口,按键盘上的windows+R,然后在输入框中输入cmd,既可以启动命令窗口 进入windows命令窗口之后,输入命令,输入netstat-ano然后回车,就可以看到系统当前所有的端口使用情况。 通过命令查找某一特定端口,在命令窗口中输入命令中输入netstat-ano|findstr”端口号”,然后回车就可以看到这个端口被哪个应用占用。 查看到对应的进程id之后,就可以通过id查找对应的进程名称,使用命令tasklist|findstr”进程id..

    2022年5月18日
    50
  • pageoffice在vue+springboot前后端分离项目中的应用方法

    pageoffice在vue+springboot前后端分离项目中的应用方法1 因浏览器禁用插件无法使用内嵌在浏览器内部的 pageoffice 打开方式 需要使用 4 0 新增的 POBrowser 方式来在外部打开一个窗口去在线打开 office 故下面介绍的是基于 4 0 在线打开文档的一种方式 2 因 pageoffice 提供的示例全部是基于 jsp 的 所以无法放在 vue 中使用 所以我只能在后端使用 thymleaf 模板去做这件事情 首先可以去 pageoffice 的官网的下载中心下

    2026年3月19日
    2
  • adfs 登录逻辑

    adfs 登录逻辑1 登录按钮前端直接调用 adfsapi 2 adfs 回调 adfsapi 获取系统配置 然后调用系统中配置的 callBackapi 3 获取 tokencallBac 返回用户 token 给前端 4 获取资源前端调用系统 userInfoapi 获取资源和用户的权限

    2026年3月17日
    2
  • jsonobject转string数组_json字符串转jsonobject对象

    jsonobject转string数组_json字符串转jsonobject对象首先在maven中添加阿里的fastjson依赖<dependency><groupId>com.alibaba</groupId><artifactId>fastjson</artifactId><version>1.2.68</version></dependency…

    2022年8月23日
    7

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号