是否可以使用相同的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对象让它工作。 (读取一个绑定声明上的端口,写一个不绑定)。但是想知道我是否可以用一个人来做。
答案 0 :(得分:0)
这是不可能的。需要使用2个单独的对象来使用单独的端口。