Java 简单UDP通信
2024-09-26 06:01:11
发送端
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetSocketAddress;
import java.net.SocketException; /**
* UDP 发送端
* @author Administrator
*
*/
public class Demo2 {
public static void main(String[] args) throws Exception { /**
* 准备发送端
* DatagramSocket()
* 构造一个数据报套接字绑定到本地主机机器上的任何可用的端口。
*/
DatagramSocket ds = new DatagramSocket(); /**
* 准备数据包
*1、 DatagramPacket(byte[] buf, int length)
* 构造一个 DatagramPacket length接收数据包的长度
*2、 String的getBytes()
* 方法是得到一个操作系统默认的编码格式的字节数组
*3、 setSocketAddress()
* 设置SocketAddress(通常是IP地址+端口号)都的远程主机发送数据报。
* 4、InetSocketAddress(InetAddress addr, int port)
* 创建一个套接字地址的IP地址和端口号。
*/
String str = "你好,UDP";
byte[] ch = str.getBytes(); DatagramPacket dp = new DatagramPacket(ch, ch.length);
dp.setSocketAddress(new InetSocketAddress("127.0.0.1", 12345)); // 发送数据
ds.send(dp); // 关闭套接字
ds.close(); }
}
接收端
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.SocketException; /**
* UDP 接收端
* @author Administrator
*
*/
public class Demo3 {
public static void main(String[] args) throws Exception { // 创建接收端
DatagramSocket ds = new DatagramSocket(12345); /**
* 接收数据包
* receive(DatagramPacket p)
* 从这个套接字接收数据报包。
*/
byte[] data = new byte[1024];
DatagramPacket dp = new DatagramPacket(data, data.length);
ds.receive(dp); // 获取接受到的信息
String str = new String(data, 0, dp.getLength());
System.out.println(str); // 关闭接收端
ds.close();
}
}
最新文章
- mysql 命令导入导出
- [Django]Django1.8修改MySQL已存在表的问题?
- Django分析之Middleware中间件
- 集成SDK查看包架构指令
- linux非常用但很有用的命令
- Explain in detail the steps/processes that occur from the moment you type a URL in a browser and hit enter
- 161125、Java网络编程之统一资源定位符URL
- C#关于值类型和引用类型的备忘
- Oracle 学习用
- Linux使用技巧9--用dpkg管理你的软件
- Java post提交表单限制
- javascript中的变量、作用域和内存问题
- 【C++】C++string类总结
- Junit中AssertTrue的使用
- R语言可视化学习笔记之ggpubr包—SCI文章图
- 有关java编辑器myeclipse编辑网站的一些设置(个人习惯)
- Linux 系统服务注册
- 表单验证插件validate
- 使用loader打包静态文件-样式2
- ip段/数字,如192.168.0.1/24的意思是什么?(转)
热门文章
- [原][osg][osgearth]我眼中的osgearth
- Ubuntu上识别不到安卓设备或者显示出“????”,提示No Permission
- c++ 中的 set
- OAF TABLE中第一列添加事件不生效
- keil软件相关问题汇总
- 002——数组(二)each() list() implode() explode() in_array()
- linux下redis的安装及配置启动
- CF86D
- HDU 6153 A Secret(扩展kmp)
- 利用django.core.mail发送QQ邮件的配置