Java DatagramSocket和DatagramPacket

本文概述

  • Java DatagramSocket类
  • 常用的DatagramSocket类的构造方法
  • Java DatagramPacket类
  • 常用的DatagramPacket类的构造方法
Java DatagramSocket和DatagramPacket类用于无连接套接字编程。
Java DatagramSocket类Java DatagramSocket类表示用于发送和接收数据报包的无连接套接字。
数据报基本上是一种信息, 但不能保证其内容, 到达或到达时间。
常用的DatagramSocket类的构造方法
  • DatagramSocket()抛出SocketEeption:它创建一个数据报套接字, 并将其与本地计算机上的可用端口号绑定。
  • DatagramSocket(int port)抛出SocketEeption:它创建一个数据报套接字, 并将其与给定的端口号绑定。
  • DatagramSocket(int port, InetAddress address)抛出SocketEeption:它创建一个数据报套接字, 并将其与指定的端口号和主机地址绑定。
Java DatagramPacket类【Java DatagramSocket和DatagramPacket】Java DatagramPacket是可以发送或接收的消息。如果发送多个数据包, 则它可能以任何顺序到达。此外, 不能保证数据包的传递。
常用的DatagramPacket类的构造方法
  • DatagramPacket(byte [] barr, int length):创建一个数据报包。该构造函数用于接收数据包。
  • DatagramPacket(byte [] barr, int长度, InetAddress地址, int端口):它创建一个数据报包。该构造函数用于发送数据包。
通过DatagramSocket发送DatagramPacket的示例
//DSender.java import java.net.*; public class DSender{ public static void main(String[] args) throws Exception { DatagramSocket ds = new DatagramSocket(); String str = "Welcome java"; InetAddress ip = InetAddress.getByName("127.0.0.1"); DatagramPacket dp = new DatagramPacket(str.getBytes(), str.length(), ip, 3000); ds.send(dp); ds.close(); } }

通过DatagramSocket接收DatagramPacket的示例
//DReceiver.java import java.net.*; public class DReceiver{ public static void main(String[] args) throws Exception { DatagramSocket ds = new DatagramSocket(3000); byte[] buf = new byte[1024]; DatagramPacket dp = new DatagramPacket(buf, 1024); ds.receive(dp); String str = new String(dp.getData(), 0, dp.getLength()); System.out.println(str); ds.close(); } }

    推荐阅读