关于udp接收端程序

/*
 * UdP程序的接收端
 */
public class ServerDemo1 {
 public static void main(String[] args) throws IOException {
  /*
   * 建数据报套接字并将其绑定到本地主机上的指定端口。
   *
   * public DatagramSocket(int port) 监听指定端口
   */
  DatagramSocket ds = new DatagramSocket(12306);

  /*
   * public DatagramPacket(byte[] buf,int length) 构造
   * DatagramPacket,用来接收长度为 length 的数据包。 参数: buf - 保存传入数据报的缓冲区。 len -
   * 要读取的字节数。
   *
   */
  byte[] bye = new byte[1024];
  DatagramPacket dp = new DatagramPacket(bye, 1024);

  System.out.println("等待接收数据");

  /*
   * public void receive(DatagramPacket p)
   * 从此套接字接收数据报包。当此方法返回时,DatagramPacket 的缓冲区填充了接收的数据。 数据报包也包含发送方的 IP
   * 地址和发送方机器上的端口号。
   */
  // 等待接收数据,如果没有数据会阻塞
  ds.receive(dp);

  // 调用DatagramPacket的方法获得接收的信息,包括内容、长度、IP地址和端口号
  /*
   * public InetAddress getAddress() 返回某台机器的 IP 地址,此数据报将要发往该机器或者是从该机器接收到的
   * 返回值类型:InetAddress
   */
  /*
   * public byte[] getData() 返回数据缓冲区。 用来接收或发送数据的缓冲区
   *
   * public String(byte[] bytes,int offset,int length)
   * 通过使用平台的默认字符集解码指定的byte 子数组,构造一个新的 String。
   *
   * 参数: bytes - 要解码为字符的 byte offset - 要解码的第一个 byte 的索引 length - 要解码的 byte
   * 数
   *
   */
  String str = new String(dp.getData(), 0, dp.getLength()) + " , from:" + dp.getAddress().getHostAddress() + "::"
    + "端口号:" + dp.getPort();

  System.out.println(str);
  // 释放资源
  ds.close();

 }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

初见雪

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值