@@ -113,18 +113,17 @@ private MulticastSocket createSocket(int port) {
113
113
Enumeration <NetworkInterface > interfaces = NetworkInterface .getNetworkInterfaces ();
114
114
while (interfaces .hasMoreElements ()) {
115
115
NetworkInterface networkInterface = interfaces .nextElement ();
116
-
117
116
if (networkInterface .isUp () && !networkInterface .isLoopback ()) {
118
117
Enumeration <InetAddress > Addresses = networkInterface .getInetAddresses ();
119
118
while (Addresses .hasMoreElements ()){
120
119
ipAddress = Addresses .nextElement ();
121
120
122
121
if (ipAddress instanceof Inet4Address ){
122
+ System .out .println ("Entrando no grupo de multicast na interface: " + networkInterface .getName () + " porta: " + port );
123
+ socket .joinGroup (new InetSocketAddress (group , PORT ), networkInterface );
123
124
break ;
124
125
}
125
126
}
126
- System .out .println ("Entrando no grupo de multicast na interface: " + networkInterface .getName () + " porta: " + port );
127
- socket .joinGroup (new InetSocketAddress (group , PORT ), networkInterface );
128
127
}
129
128
}
130
129
// socket.joinGroup(new InetSocketAddress(group, PORT), NetworkInterface.getByInetAddress(InetAddress.getByName("0.0.0.0")));
@@ -152,7 +151,7 @@ class DeviceFinder {
152
151
private byte [] buffer = new byte [1024 ];
153
152
private DatagramPacket responsePacket ;
154
153
155
- public ArrayList <List <String >> devices = new ArrayList <>();
154
+ public List <List <String >> devices = new ArrayList <>();
156
155
157
156
@ Autowired
158
157
private LocalRepository localRepository ;
@@ -186,6 +185,7 @@ public void Finder(boolean auto) {
186
185
187
186
socket .send (packet );
188
187
188
+ Thread .sleep (2000 );
189
189
socket .receive (responsePacket );
190
190
String responseMessage = new String (responsePacket .getData (), 0 , responsePacket .getLength ());
191
191
@@ -196,17 +196,26 @@ public void Finder(boolean auto) {
196
196
e .printStackTrace ();
197
197
}
198
198
199
- if (device .size () > 1 && !devices .contains (device ) && !localsMacs .contains (device .get (1 ))) {
200
- devices .add (device );
201
- } else if (localsMacs .contains (device .get (1 )) && devices .contains (device )) {
202
- devices .remove (device );
199
+ if (device .size () > 1 ) {
200
+ if (!devices .contains (device ) && !localsMacs .contains (device .get (1 ))) {
201
+ devices .add (device );
202
+ } else if (localsMacs .contains (device .get (1 )) && devices .contains (device )) {
203
+ devices .remove (device );
204
+ }
203
205
}
204
206
207
+ System .out .println (device .toString ());
208
+ devices .forEach (d -> {
209
+ if (localsMacs .contains (d .get (1 ))) {
210
+ devices .remove (d );
211
+ }
212
+ });
213
+
205
214
System .out .println ("Devices found: " + devices );
206
215
207
216
if (auto ) {
208
217
Thread .sleep (180000 );
209
- }else {
218
+ } else {
210
219
break ;
211
220
}
212
221
}
0 commit comments