可以使用收到的DatagramPacket再次发送吗?

时间:2015-05-25 10:25:38

标签: java echo datagram

我正在测试一个UDP echo服务器,下面的代码是否正确?

DatagramSocket s = ...
DatagramPacket p = new DatagramPacket(new byte[512], 512);

...

s.recieve(p);
s.send(p);

我的问题是,我可以像收到的那样发送DatagramPacket吗?根据java规范,我使用的构造函数构造了一个DatagramPacket'用于接收使用'。我不确定在通过s.recieve修改数据包时该状态是否发生变化,或者“接收使用状态”是否是永久性的。

如果代码是正确的,是否有任何理由在教程中构建一个全新的DatagramPacket? (也许只是清晰度?) https://docs.oracle.com/javase/tutorial/networking/datagrams/clientServer.html

1 个答案:

答案 0 :(得分:0)

是的,这很常见。如果您收到请求,则DatagramPacket中已包含返回地址,因此您只需将响应数据放入其中并将其发回。