A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 心在左边跳 中级黑马   /  2015-7-10 14:55  /  591 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

DatagramSocket
DataPacket(数据报包)

  1. import java.net.*;
  2. /**
  3. *通过UDP传输方式,将一段文字发送出去
  4. *1.建立UDP socket服务
  5. *2.提供数据,并将数据封装到数据包中
  6. *3.通过socket服务的发送功能,发送数据包
  7. *4.关闭资源。
  8. */
  9. public class UDPSend{
  10.     public static void main(String[] args) throws Exception {
  11.         //创建UDP服务,通过DatagramSocket对象
  12.         DatagramSocket ds= new DatagramSocket();
  13.         //提供数据,并将数据封装到数据包中
  14.         byte[] data="UDP COME".getBytes();
  15.         DatagramPacket dp=new DatagramPacket(data,data.length,InetAddress.getByName("127.0.0.1"),10001);
  16.         //通过socket服务的发送功能,发送数据包
  17.         ds.send(dp);
  18.         //关闭资源
  19.         ds.close();
  20.     }
  21. }
复制代码
  1. import java.net.*;
  2. /**
  3. * 定义一个应用程序,用于接受UDP协议传输的数据并处理
  4. *1.定义UDPSocket服务,通常监听一个端口
  5. *2.定义一个数据包,存储接收到的字节数据。用数据包对象提取字节数据中的信息
  6. *3.通过socket服务的receive方法将收到的数据存入已定义好的数据包中
  7. *4.通过数据包对象的特有功能,将这些不同的数据取出来,打印在控制台。
  8. *5.关闭资源。
  9. */
  10. public class UDPReceive {
  11.     public static void main(String[] args) throws Exception {
  12.         //创建UDPSocket,建立端点,监听10000端口
  13.         DatagramSocket ds= new DatagramSocket(10001);
  14.         //定义数据包,存储数据
  15.         byte []buf=new byte[1024];
  16.         DatagramPacket dp=new DatagramPacket(buf,buf.length);
  17.         //阻塞式方法
  18.         ds.receive(dp);
  19.         //获取发送端的IP
  20.         String ip=dp.getAddress().getHostAddress();
  21.         //获取传输的数据
  22.         String data=new String(dp.getData(),0,dp.getLength());
  23.         //获取的发送端的数字标识
  24.         int port=dp.getPort();
  25.         System.out.println(ip+"::"+data+"::"+port);
  26.         ds.close();
  27.     }
  28. }
复制代码



0 个回复

您需要登录后才可以回帖 登录 | 加入黑马