UDP传输数据

news/2024/5/18 14:09:25 标签: udp

UDP传输数据

DatagramSocket:通讯的数据管道
常用方法:send(发送)和receive(接收)
绑定一个IP和Port(可选多网卡)
DatagramPacket:封装数据
地址标签:目的地IP+Port
UdpRecv.java

public class UdpRecv {
    public static void main(String[] args) throws Exception {
        DatagramSocket dr = new DatagramSocket(3000);
        byte[] buf = new byte[1024];
        DatagramPacket dp = new DatagramPacket(buf,1024);
        System.out.println("我在等待消息");
        dr.receive(dp);
        System.out.println("我已接收到消息");
        String strRecv = new String(dp.getData(),0, dp.getLength())+
                "from"+dp.getAddress().getHostAddress()+":"+dp.getPort();
        System.out.println(strRecv);
        System.out.println("我要开始发送消息了");
        String str = new String("你好,UDP");
        DatagramPacket dp2 = new DatagramPacket(str.getBytes(StandardCharsets.UTF_8),
                str.length(), InetAddress.getByName("127.0.0.1"),dp.getPort());
        dr.send(dp);
        System.out.println("发送消息结束了");
    }
}

在这里插入图片描述

UdpSend.java

import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
import java.nio.charset.StandardCharsets;

public class UdpSend {
    public static void main(String[] args) throws Exception {
        DatagramSocket ds = new DatagramSocket();
        String str = "Hello UDP";
        DatagramPacket dp = new DatagramPacket(str.getBytes(StandardCharsets.UTF_8),
                str.length(), InetAddress.getByName("127.0.0.1"),3000);
        System.out.println("我要发送数据了");
        ds.send(dp);
        System.out.println("我发送数据结束了");
        Thread.sleep(1000);
        byte[] buf = new byte[1024];
        DatagramPacket dp2 = new DatagramPacket(buf,1024);
        System.out.println("我开始接收数据了");
        ds.receive(dp2);
        System.out.println("我接受结束结束了");
        String str2 = new String(dp.getData(),0,dp2.getLength())+
                "fron"+dp.getAddress().getHostAddress()+":"+dp.getPort();
        System.out.println(str2);
    }
}

在这里插入图片描述


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

相关文章

开源纯C日志函数库iLOG3快速入门(一、基本使用速览)

2019独角兽企业重金招聘Python工程师标准>>> 关键软件都要有日志,有的用自己写的简单写日志函数,但缺乏一些必要的功能如日志等级、日志分类和转档,有的用诸如log4c这样的巨无霸,功能很丰富,但太臃肿了&…

32位,64位的一些问题

这些事跨平台编程导致的; 一、数据类型特别是int相关的类型在不同位数机器的平台下长度不同。C99标准并不规定具体数据类型的长度大小,只规定级别。作下比较:16位平台char 1个字节8位short 2个字节16位int 2个字节…

net开源项目

Json.NET http://json.codeplex.com/ Json.Net是一个读写Json效率比较高的.Net框架.Json.Net 使得在.Net环境下使用Json更加简单。通过Linq To JSON可以快速的读写Json,通过JsonSerializer可以序列化你的.Net对象。让你轻松实现.Net中所有类型(对象,基本数据类型等…

vue脚手架(3.0)版本的安装

1、安装nodejs 官网:https://nodejs.org/zh-cn/download 2、准备安装vue脚手架 如果之前有安装过相对应的vue版本的话,需要将相关的删除。 npm uni -g vue-cli或cnpm uni -g vue-cli 3、安装 cnpm i -g vue/cli 4、安装完成,查看版本 可…

vue3.0 新建

输入指令 安装完VUE之后,在cmd中输入 vur ui 新建 在浏览器中会打开一个新建vue项目的图形化界面 预设 cmd中会显示这样的一个进度条,当进度条满时就代表新建完成 运行 由上方点到输出 点击上方的随意一个路径,能打开以下页面&am…

windows server 2008 IIS 配置FTP服务器

1、添加FTP角色服务2、设置FTP服务器IP地址3、不让匿名用户连接4、设置主目录5、设置用户权限6、客户端安装FTP程序7、连接ftp服务器成功。转载于:https://blog.51cto.com/4610383/1358816

如何重建Octopress本地环境

# 安装rvm, ruby, bundler 略 # 克隆octopress $ git clone git://github.com/imathis/octopress.git octopress $ gem install bundler $ bundle install # 安装主题 $ rake install# 设置github帐号 $ rake setup_github_pages# 同步Github上已发布的博客 $ git checkout .# …

idea安装插件

搜索 File→Settings→Plugins 有时可能你会发现搜索不到自己需要的插件,检查是不是自己的拼写错误还是上方选到了installed 安装 搜索到自己需要的插件,直接点击Install等待它完成安装