diff --git a/src/edu/nps/moves/dis7/utilities/DisNetworking.java b/src/edu/nps/moves/dis7/utilities/DisNetworking.java index 4250a07d1ac4ebf2deda266a9fe31e9fa6f7cc67..8fcf76bf18f0784cfd5be86537fc011cd5ee1f3b 100644 --- a/src/edu/nps/moves/dis7/utilities/DisNetworking.java +++ b/src/edu/nps/moves/dis7/utilities/DisNetworking.java @@ -81,8 +81,8 @@ public class DisNetworking rsocket = new MulticastSocket(DIS_PORT); InetAddress maddr = InetAddress.getByName(MCAST_GROUP); - rsocket.setNetworkInterface(findIp4Interface()); - rsocket.joinGroup(maddr); + InetSocketAddress group = new InetSocketAddress(maddr, DIS_PORT); + rsocket.joinGroup(group, findIp4Interface()); byte buffer[] = new byte[MAX_DIS_PDU_SIZE]; packet = new DatagramPacket(buffer, buffer.length); @@ -90,6 +90,7 @@ public class DisNetworking rsocket.receive(packet); //blocks here waiting for next DIS pdu to be received on broadcast IP and specified port //System.out.println("packet received from " + packet.getSocketAddress()); + rsocket.leaveGroup(group, findIp4Interface()); rsocket.close(); rsocket = null; return new BuffAndLength(packet.getData(), packet.getLength()); diff --git a/src/edu/nps/moves/dis7/utilities/DisThreadedNetIF.java b/src/edu/nps/moves/dis7/utilities/DisThreadedNetIF.java index 9c4cb092cb9cc579901965111a9c23f78a707811..dda4e59a273995f24d52db7ef52ea4308e67f2c7 100644 --- a/src/edu/nps/moves/dis7/utilities/DisThreadedNetIF.java +++ b/src/edu/nps/moves/dis7/utilities/DisThreadedNetIF.java @@ -187,7 +187,7 @@ public class DisThreadedNetIF byte buffer[] = new byte[MAX_DIS_PDU_SIZE]; DatagramPacket packet = new DatagramPacket(buffer, buffer.length); InetAddress maddr; - InetSocketAddress group; + InetSocketAddress group = null; Pdu pdu; ByteBuffer byteBuffer;