UDP 端到端
2024-08-25 10:34:58
创建发送端
1.建立DatagramSocket对象,该端点建立,系统会随机分配一个端口,如果不想随机分配,可手动指定。
2.将数据进行packet封装,必须指定目的地址和端口。
3.通过socket服务的send方法将该包发出。
4,。将socket关闭。
package UDP; import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
import java.net.SocketException;
import java.net.UnknownHostException; public class Demo1 { public static void main(String[] args) throws IOException { DatagramSocket socket = new DatagramSocket(); String str = "hello";
// 打包封装
DatagramPacket packet = new DatagramPacket(str.getBytes(), str.length(), InetAddress.getByName("localhost"),
8000);
socket.send(packet);// 发送 // 接收 byte[] buff = new byte[100];
DatagramPacket packet2 = new DatagramPacket(buff, 100);
socket.receive(packet2);
System.out.println(new String(buff, 0, packet2.getLength()));
socket.close();
} }
创建接收端
1.建立DatagramSocket对象,要监听一个端口。
2.通过socket的recevie方法将数据存入数据包中。
3.通过数据包的方法getData()、getAddress()、getPort()、等方法获取包中的指定信息。
4.将socket关闭
package UDP; import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
import java.net.SocketException; public class Demo2 { public static void main(String[] args) throws IOException {
//接收
DatagramSocket socket = new DatagramSocket(8000);
byte[] buff = new byte[100];
DatagramPacket packet = new DatagramPacket(buff, 100);
socket.receive(packet);
System.out.println(new String (buff,0,packet.getLength())); //发送
String str = "me too";
DatagramPacket packet2 = new DatagramPacket(str.getBytes(), str.length(), packet.getAddress(),
packet.getPort());
socket.send(packet2);
socket.close(); } }
最新文章
- JavaScript模板引擎artTemplate.js——为什么使用模板引擎?
- alter system switch logfile与alter system archive log current的区别
- nodejs之获取客户端真实的ip地址+动态页面中引用静态路径下的文件及图片等内容
- android 检查网络连接状态实现步骤
- hibernate.properties官方属性用例(可用于hibernate.cfg.xml属性参考)
- SequoiaDB版本升级及导入导出工具说明
- Java -- Thread中start和run方法的区别
- 14_RHEL7安装mplayer
- 年底小回顾(MVC+NHibernate+Jquery+JqueryUI——网站)
- CCNA笔记(3)
- POJ-2253 Frogger---最短路变形&;&;最大边的最小值
- .net程序员面试小结(内附一些面试题和答案)
- SQL Server In-Memory OLTP Internals for SQL Server 2016
- mybatis下的分页,支持所有的数据库
- c# 多线程之-- System.Threading Timer的使用
- OO 面向对象的概念
- 【转】C# Socket编程(3)编码和解码
- 笔记:Why don't you pull up a chair and give this lifestyle a try?
- Linux 查看CPU、Memory等资源占用情况
- C#与JAVA学习感悟