创建发送端

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(); } }

最新文章

  1. JavaScript模板引擎artTemplate.js——为什么使用模板引擎?
  2. alter system switch logfile与alter system archive log current的区别
  3. nodejs之获取客户端真实的ip地址+动态页面中引用静态路径下的文件及图片等内容
  4. android 检查网络连接状态实现步骤
  5. hibernate.properties官方属性用例(可用于hibernate.cfg.xml属性参考)
  6. SequoiaDB版本升级及导入导出工具说明
  7. Java -- Thread中start和run方法的区别
  8. 14_RHEL7安装mplayer
  9. 年底小回顾(MVC+NHibernate+Jquery+JqueryUI——网站)
  10. CCNA笔记(3)
  11. POJ-2253 Frogger---最短路变形&&最大边的最小值
  12. .net程序员面试小结(内附一些面试题和答案)
  13. SQL Server In-Memory OLTP Internals for SQL Server 2016
  14. mybatis下的分页,支持所有的数据库
  15. c# 多线程之-- System.Threading Timer的使用
  16. OO 面向对象的概念
  17. 【转】C# Socket编程(3)编码和解码
  18. 笔记:Why don't you pull up a chair and give this lifestyle a try?
  19. Linux 查看CPU、Memory等资源占用情况
  20. C#与JAVA学习感悟

热门文章

  1. BZOJ 4001 [TJOI2015]概率论 ——找规律
  2. BZOJ 1226 [SDOI2009]学校食堂Dining ——状压DP
  3. php 学习随笔
  4. Xcode打包应用为ipa
  5. Day 4 Linux基础
  6. GIL锁、死锁、递归锁、定时器
  7. hdu2448 / 费用流 / harbin赛区c题
  8. web信息搜索之目标扫描篇
  9. C51单片机头文件和启动文件
  10. 前端进阶之路:初涉Less