UDP读取发送工具类
目录
前言
一、udp是什么?
二、使用步骤
1.UDP接收工具类
2.UDP发送工具类
3.UDP发送接收调用示例
总结
前言
工作中遇到UDP数据的接收与发送工具类,记录下以便后续有需要使用。
一、udp是什么?
UDP是一个无连接协议,传输数据之前源端和终端不建立连接,当它想传送时就简单地去抓取来自应用程序的数据,并尽可能快地把它扔到网络上。在发送端,UDP传送数据的速度仅仅是受应用程序生成数据的速度、计算机的能力和传输带宽的限制;在接收端,UDP把每个消息段放在队列中,应用程序每次从队列中读一个消息段。
由于传输数据不建立连接,因此也就不需要维护连接状态,包括收发状态等,因此一台服务机可同时向多个客户机传输相同的消息。注意:UDP协议是不可靠的。
二、使用步骤
1.UDP接收工具类
代码如下:
package com.datafactory.utils;import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.SocketException;/*** udp接受工具类*/
public class UDPRev {private DatagramSocket server;private DatagramPacket packet;private byte[] b;/*** @Description 构造接收udp的同时设置接收端口号* @param: revPort* @return null* @throws**/public UDPRev(int revPort){super();try {this.server = new DatagramSocket(revPort);} catch (SocketException e) {e.printStackTrace();}System.out.println("UDP接收已启动,正在监听端口"+revPort);}//持续接收udp端口发送过来的数据public byte[] receiveData(){b = new byte[1024];int len=0;packet = new DatagramPacket(b,b.length);try {server.receive(packet);} catch (IOException e) {e.printStackTrace();}return packet.getData();}
}
2.UDP发送工具类
代码如下:
package com.datafactory.utils;import java.net.*;/*** udp发送工具类 每次发送都需要重新创建一个发送udp的对象*/
public class UDPSend {/*** 发送端口*/private int sendPort;/*** 发送ip*/private String sendIP;/*** 发送使用的客户端对象**/private DatagramSocket client;//创建发送端Socket对象public UDPSend(int sendPort,String sendIP){super();this.sendPort = sendPort;this.sendIP = sendIP;try {client = new DatagramSocket(sendPort);} catch (SocketException e) {e.printStackTrace();}System.out.println("UDP发送端已启动,发送端口:"+sendPort+",发送ip:"+sendIP);}//发送数据包public void send(byte[] sendMessage){//创建数据并打包int length = sendMessage.length;try {InetAddress ip = InetAddress.getByName(sendIP);//根据自己主机的ip地址或者主机名DatagramPacket dp = new DatagramPacket(sendMessage,length,ip,sendPort);//发送数据client.send(dp);}catch (Exception e){e.printStackTrace();}}}
3.UDP发送接收调用示例
持续接收UDP数据代码如下:
UDPRev udpRev = new UDPRev(6000);
while(true){//接受udp数据byte[] udpData = udpRev.receiveData();//将接收到的数据做处理}
发送UDP数据代码如下:
byte[] udpData = new String("123456").getBytes();
UDPSend udpSend = new UDPSend(6001,"192.168.0.1");
udpSend.send(udpData);
总结
UDP的接收需要持续不断的接收,每个接收端口都需要重新创建一个接收UDP工具类对象对数据进行接收,不可以重复使用对象。
UDP发送时也一样,发送到不同的端口时需要创建新的发送工具类对象。
UDP读取发送工具类相关推荐
- C#实现的UDP收发请求工具类实例
本文实例讲述了C#实现的UDP收发请求工具类.分享给大家供大家参考,具体如下: 初始化: ListeningPort = int.Parse(ConfigurationManager.AppSetti ...
- 封装一个邮件发送工具类,一个字,巴适
系列文章目录 文章目录 系列文章目录 前言 一. 介绍 二.二话不说开始干 1.引入库 2. 邮件发送实体(Mail) 3. 邮件发送类型枚举(MailType ) 4.邮件发送抽象类(Abstrac ...
- Java 基于mail.jar 和 activation.jar 封装的邮件发送工具类
准备工作 发送邮件需要获得协议和支持! 开启服务 POP3/SMTP 服务 如何开启 POP3/SMTP 服务:https://blog.csdn.net/weixin_44953227/articl ...
- 【阿里云】短信服务 无认证 测试版本 附带短信发送工具类
一.注册阿里云账号并登录阿里云(阿里云登录 - 欢迎登录阿里云,安全稳定的云计算服务平台) 二.找到云短信服务 直接搜索短信,并进入到短信控制台 三.正文 1.绑定测试手机号 测试版存在限制 发送手机 ...
- Java基于POI读取Excel工具类
为什么为封装此工具类? 由于公司供应链部门业务需要,对Excel处理这块有较为严苛的要求.为了提高开发效率,从实际项目出发封装了通用自定义读取Excel工具类. 功能概述 支持读取全部excel数据 ...
- ali短信发送工具类
阿里接口请求发送工具类 使用hutools工具 String host = "https://gyytz.market.alicloudapi.com";String path = ...
- java邮箱发送工具类
如何编写邮箱发送功能模块 1.主要编写了邮箱发送工具类,里面每行代码有详细注释,直接复制修改个人邮箱信息就能进行测试,希望对大家有用. 1.主要编写了邮箱发送工具类,里面每行代码有详细注释,直接复制修 ...
- java企业微信消息发送工具类
java企业微信消息发送工具类 用途 基于java实现调用企业微信发送消息,文件,图片. 实现效果 文件列表 文件名 用途 WechatUtil.java 企业微信工具类 WechatTest.jav ...
- 邮箱验证码发送工具类(秒发)
如题,不做过多介绍,直接上代码 package util;import javax.mail.Session; import javax.mail.Transport; import javax.ma ...
- JAVA 邮件发送工具类
1.封装邮件接收地址MODEL和邮件信息MODEL package com.sicdt.jnzxgzc.common.mail.model;import java.io.Serializable; / ...
最新文章
- linux下重命名脚本推荐
- this super 在接口以及实现类中所指的对象
- Quartz源码总结
- JUC队列-ArrayBlockingQueue(一)
- python 混淆矩阵_新手常见的5个Python错误
- solr学习笔记-增加mmesg4J中文分词
- VC++6遇到的问题(持续更新)
- 冒泡排序(bubble sort)算法实现
- 雅虎再掀高管离职潮 博客列三大原因
- html仿QQ资料卡,JS实现的模仿QQ头像资料卡显示与隐藏效果
- Unity 组合键输入及容易忽略的问题
- 企业微信之发送应用消息案例
- 美团人的写作基本功是如何练成的
- 勾股定理计算机语言,勾股定理
- 【Nginx】01-什么是Nginx?Nginx技术的功能及其特性介绍
- 【Axure高保真原型】日期时间选择器
- sas9.2智能平台连接oracle数据库操作说明文档,SAS9.2 SID更新
- php 分页怎么实现的_php如何实现分页
- Python | 爬虫 | selenium自动化测试 | b站点触验证码登录
- PS 自定义面板 工作区
热门文章
- CSS font-family常见中文字体对应的英文名称
- java eclipse计算器_用eclipse制作计算器。
- 国产开源数据可视化套件Cboard使用
- c语言细胞自动机,关于细胞自动机的程序..求救!!谢谢!
- 【IDEA】解决: alt+/快捷键 冲突的问题
- 华为密盒M310最新固件-精简美化版
- arduino秒退解决方法
- Mac的反编译工具一:otool (objdump工具的OSX对应工具)。
- python导入鸢尾花数据集_python 鸢尾花数据集报表展示
- AutoJs学习-几个QQ群脚本(群引流\提取成员\加群友\加群)