gpt4 book ai didi

java - DatagramPacket - getData 是否总是返回传递的相同缓冲区?

转载 作者:太空狗 更新时间:2023-10-29 22:41:22 27 4
gpt4 key购买 nike

byte [] r = new byte[4096];
DatagramPacket dpr = new DatagramPacket(r, r.length);
sock.receive(dpr);

receive之后,dpr.getData() & r会不会一直一样?

例如:我可以直接使用字节数组r 还是需要再次调用getData() 来获取缓冲区?

测试它,表明它是一样的,但这总是有保证吗?

最佳答案

byte [] r = new byte[4096];
DatagramPacket dpr = new DatagramPacket(r, r.length);
sock.receive(r);

应该是sock.receive(dpr);

After the receive, will dpr.getData() & r always be the same?

是的。 r 作为“保存传入数据报的缓冲区”提供给构造函数,getData()“返回用于接收或发送数据的缓冲区”。

i.e. can I directly use the byte array r or do I need to call getData() to retrieve the buffer again?

您可以使用字节数组,但为什么呢?像其他人一样使用 getData(),不要忘记也使用 getOffset()getLength(),而不是假设数据报填满了字节数组:例如,System.out.println(new String(datagram.getData(), datagram.getOffset(), datagram.getLength()));

关于java - DatagramPacket - getData 是否总是返回传递的相同缓冲区?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37560008/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com