收到的DatagramPacket可以用来再次发送吗?
Can a received DatagramPacket be used to be sent again?
我正在测试 UDP 回显服务器,以下代码是否正确?
DatagramSocket s = ...
DatagramPacket p = new DatagramPacket(new byte[512], 512);
...
s.recieve(p);
s.send(p);
我的问题是,我可以按收到的方式发送 DatagramPacket
吗?根据java规范,我使用的constructor构造了一个DatagramPacket'for recieving use'。我不确定当数据包通过 s.recieve
修改后状态是否改变,或者 'for recieve use state' 是否是永久的。
如果代码是正确的,他们在教程中构建一个全新的 DatagramPacket
有什么原因吗? (也许只是清晰度?)
https://docs.oracle.com/javase/tutorial/networking/datagrams/clientServer.html
是的,而且很常见。如果你收到一个请求,DatagramPacket里面已经有了return地址,所以你需要做的就是将响应数据放入其中并发回。
我正在测试 UDP 回显服务器,以下代码是否正确?
DatagramSocket s = ...
DatagramPacket p = new DatagramPacket(new byte[512], 512);
...
s.recieve(p);
s.send(p);
我的问题是,我可以按收到的方式发送 DatagramPacket
吗?根据java规范,我使用的constructor构造了一个DatagramPacket'for recieving use'。我不确定当数据包通过 s.recieve
修改后状态是否改变,或者 'for recieve use state' 是否是永久的。
如果代码是正确的,他们在教程中构建一个全新的 DatagramPacket
有什么原因吗? (也许只是清晰度?)
https://docs.oracle.com/javase/tutorial/networking/datagrams/clientServer.html
是的,而且很常见。如果你收到一个请求,DatagramPacket里面已经有了return地址,所以你需要做的就是将响应数据放入其中并发回。