1、文档



2、相关问题


2.1、UDP编程

  1. public class UDPReceiver {
  2. public static void main(String[] args) throws IOException {
  3. // 创建一个DatagramSocket对象,准备在9999端口接受数据
  4. DatagramSocket socket = new DatagramSocket(9999);
  5. // 构建一个DatagramPacket对象,准备接受数据,一个数据包最大64K
  6. byte[] buf = new byte[1024];
  7. DatagramPacket packet = new DatagramPacket(buf, 0, buf.length);
  8. // 调用接收方法 将通过网络传输的DatagramPacket对象填充到packet对象,
  9. // 当有数据到达时就会接收数据,没有的话阻塞等待
  10. System.out.println("等待接收数据。。。。");
  11. socket.receive(packet);
  12. // 将packet进行拆包 取出数据,
  13. int length = packet.getLength();
  14. byte[] data = packet.getData();
  15. System.out.println(new String(data, 0, length));
  16. // 回复消息
  17. data = "好的。明天见".getBytes();
  18. packet = new DatagramPacket(data, data.length, InetAddress.getByName("127.0.0.1"), 9998);
  19. socket.send(packet);
  20. // 关闭资源
  21. socket.close();
  22. System.out.println("A端退出");
  23. }
  24. }
  1. public class UDPSender {
  2. public static void main(String[] args) throws IOException {
  3. // 创建一个DatagramSocket对象,准备在9998端口接受数据
  4. DatagramSocket socket = new DatagramSocket(9998);
  5. // 将需要发送的数据 封装到DatagramPacket对象
  6. byte[] data = "hello 明天吃火锅去?".getBytes();
  7. DatagramPacket packet = new DatagramPacket(data, data.length, InetAddress.getByName("127.0.0.1"), 9999);
  8. socket.send(packet);
  9. // 接受从A端回复的信息
  10. byte[] buf = new byte[1024];
  11. packet = new DatagramPacket(buf, 0, buf.length);
  12. // 调用接收方法 将通过网络传输的DatagramPacket对象填充到packet对象,
  13. // 当有数据到达时就会接收数据,没有的话阻塞等待
  14. System.out.println("等待接收数据。。。。");
  15. socket.receive(packet);
  16. // 将packet进行拆包 取出数据,
  17. int length = packet.getLength();
  18. data = packet.getData();
  19. System.out.println(new String(data, 0, length));
  20. // 关闭资源
  21. socket.close();
  22. System.out.println("B端退出");
  23. }
  24. }