UDP使用不同的端口进行读/写

时间:2016-10-31 19:16:47

标签: java udp datagram

是否可以使用相同的DatagramSocket对象使用两个不同的端口进行读写?我需要在端口X上接收并在端口X + 1上写入。目前我在做什么:

sock = new DatagramSocket(5000);

byte[] buffer = new byte[DataAdapterFB1.HEADER_SIZE + DataAdapterFB1.MAX_DATA_BYTES];
DatagramPacket incoming = new DatagramPacket(buffer, buffer.length);
sock.receive(incoming);

后来:

dp = new DatagramPacket(send.getBytes(), send.getBytes().length, DataAdapterFB1.ccuAddr, 5001);
sock.send(dp);

我没有看到wireshark上发送数据包的任何输出。

我也尝试过:

sock = new DatagramSocket();

byte[] buffer = new byte[DataAdapterFB1.HEADER_SIZE + DataAdapterFB1.MAX_DATA_BYTES];
DatagramPacket incoming = new DatagramPacket(buffer, buffer.length,DataAdapterFB1.localhost, 5000);
sock.receive(incoming);

dp = new DatagramPacket(send.getBytes(), send.getBytes().length, DataAdapterFB1.Addr, 5001);
sock.send(dp);

但它似乎不起作用。我能够使用2个datagramsocket对象让它工作。 (读取一个绑定声明上的端口,写一个不绑定)。但是想知道我是否可以用一个人来做。

1 个答案:

答案 0 :(得分:0)

这是不可能的。需要使用2个单独的对象来使用单独的端口。