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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

发送端:
  1. import java.io.IOException;
  2. import java.net.DatagramPacket;
  3. import java.net.DatagramSocket;
  4. import java.net.InetAddress;
  5. public class UDPSend {
  6.         /**
  7.          * @param args
  8.          * @throws IOException
  9.          */
  10.         public static void main(String[] args) throws IOException {
  11.        
  12.                 System.out.println("udp 发送端 run");
  13.                
  14.                 /*
  15.                  * 通过查阅文档,了解到用于UDP传输协议的对象是DatagramSocket。
  16.                  *
  17.                  * 通过udp的协议发送一段文本数据。
  18.                  * 思路:
  19.                  * 1,需要先建立udp的socket。它具备者发送或者接收功能。
  20.                  * 2,将数据封装到数据包中。数据包对象是DatagramPacket。
  21.                  * 3,使用socket对象的send方法将数据包发送出去。
  22.                  * 4,关闭资源。
  23.                  */
  24.                
  25. //                1,需要先建立udp的socket。它具备者发送或者接收功能。
  26.                 DatagramSocket ds = new DatagramSocket();
  27.                
  28. //                2,将数据封装到数据包中。数据包对象是DatagramPacket。
  29.                 String text = "这是传送的数据啊:荆志宝";
  30.                 byte[] buf = text.getBytes();//将数据转成字节数组。
  31. //                将字节数组封装到数据包中。
  32.                 DatagramPacket dp = new DatagramPacket(buf, buf.length, InetAddress.getByName("127.0.0.1"), 10000);
  33.                
  34. //                3,使用socket对象的send方法将数据包发送出去。
  35.                 ds.send(dp);
  36.                
  37. //                4,关闭资源。
  38.                 ds.close();
  39.                
  40.         }
  41. }
复制代码

接收端:
  1. import java.io.IOException;
  2. import java.net.DatagramPacket;
  3. import java.net.DatagramSocket;
  4. public class UDPRece {
  5.         /**
  6.          * @param args
  7.          * @throws IOException
  8.          */
  9.         public static void main(String[] args) throws IOException {
  10.                 System.out.println("udp 接收端 run");
  11.                 /*
  12.                  * 定义一个udp的接收端。接收发送过来的数据。并显示在屏幕上。
  13.                  * 思路:
  14.                  * 1,先有udp  socket服务。而且记住:接收端一定要明确端口。否则收不到数据。
  15.                  * 2,接收数据。之前先将数据存储到数据包中。
  16.                  * 3,先定义数据包。
  17.                  * 4,通过数据包对象获取数据包的内容,发送端的ip。发送端的端口,发送过来的数据。
  18.                  * 5,关闭资源。
  19.                  *
  20.                  */
  21. //                1,先有udpsocket服务。
  22.                 DatagramSocket ds = new DatagramSocket(10000);
  23.                
  24. //                2,接收数据。之前先将数据存储到数据包中。
  25. //                3,先定义数据包。
  26.                 byte[] buf = new byte[1024];
  27.                 DatagramPacket dp = new DatagramPacket(buf, buf.length);
  28.                 ds.receive(dp);//阻塞
  29. //                4,通过数据包对象获取数据包的内容,发送端的ip。发送端的端口,发送过来的数据。
  30.                 String ip = dp.getAddress().getHostAddress();
  31.                 int port = dp.getPort();
  32.                 String text = new String(dp.getData(),0,dp.getLength());
  33.                
  34.                 System.out.println(ip+":"+port+":"+text);
  35. //                5,关闭资源。
  36.                 ds.close();
  37.         }
  38. }
复制代码



1 个回复

倒序浏览
不错不错
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马