Fórum Root.cz
Hlavní témata => Vývoj => Téma založeno: JmJ 10. 11. 2016, 09:03:48
-
Zdravim,
mam jednoduchy program v Jave, ktery ma vypsat sitova rozhrani v systemu. Pokud jsou v systemu "obycejne" sitovky, tak vse funguje ok. Pokud je k PC pripojen mobilni telefon pres USB, ktery vytvori v systemu virtualni sitovku, tak enumerace trva i 2 minuty. C# aplikace funguje ok. Zkouseno na vice PC s ruznymi verzemi win, JDK 1.8.
K zaseknuti dojde primo na NetworkInterface.getNetworkInterfaces()
import java.io.*;
import java.net.*;
import java.util.*;
import static java.lang.System.out;
public class TestNetwork {
public static void main(String[] args) throws SocketException {
Enumeration<NetworkInterface> nets = NetworkInterface.getNetworkInterfaces();
for (NetworkInterface netint : Collections.list(nets))
displayInterfaceInformation(netint);
}
static void displayInterfaceInformation(NetworkInterface netint) throws SocketException {
out.printf("Display name: %s\n", netint.getDisplayName());
out.printf("Name: %s\n", netint.getName());
Enumeration<InetAddress> inetAddresses = netint.getInetAddresses();
for (InetAddress inetAddress : Collections.list(inetAddresses)) {
out.printf("InetAddress: %s\n", inetAddress);
}
out.printf("Up? %s\n", netint.isUp());
out.printf("Loopback? %s\n", netint.isLoopback());
out.printf("PointToPoint? %s\n", netint.isPointToPoint());
out.printf("Supports multicast? %s\n", netint.supportsMulticast());
out.printf("Virtual? %s\n", netint.isVirtual());
out.printf("Hardware address: %s\n",
Arrays.toString(netint.getHardwareAddress()));
out.printf("MTU: %s\n", netint.getMTU());
out.printf("\n");
}
}
Nenapada vas prosim kde muze byt problem?
-
Zdar,
no ak o tom mlci aj google, tak by som skusil profilerom pozriet, kde to tolko trva, pripadne by som postupne zapoznamkoval jednotlive sysouty. Tipoval by som, ze java sa niekde resolvnut ip adresu.
-
Podívejte se do zdrojáků JDK, jak je NetworkInterface.getNetworkInterfaces() implementováno.
-
Tipnul bych si na DNS resolver. Ale ověřit se to musí trasování (stačí i
strace
).
-
Diky za napady. Uvidime, jestli se prijde na to cim to bylo ;-)
-
Kde je ta lopata Javaman, když ho někdo potřebuje?