async UDP ping

This commit is contained in:
Anuken
2023-02-26 11:40:53 -05:00
parent e234ac43a6
commit 84e52bdee3
3 changed files with 178 additions and 6 deletions

View File

@@ -5,12 +5,10 @@ import arc.func.*;
import arc.math.*;
import arc.net.*;
import arc.net.FrameworkMessage.*;
import arc.net.dns.*;
import arc.struct.*;
import arc.util.*;
import arc.util.Log.*;
import arc.util.io.*;
import mindustry.*;
import mindustry.game.EventType.*;
import mindustry.net.Administration.*;
import mindustry.net.Net.*;
@@ -211,8 +209,23 @@ public class ArcNetProvider implements NetProvider{
}
}
//TODO remove
static AsyncUdp udp = new AsyncUdp();
@Override
public void pingHost(String address, int port, Cons<Host> valid, Cons<Exception> invalid){
long time = Time.millis();
var socket = new InetSocketAddress(address, port);
Log.info("Time to resolve @: @", address, Time.timeSinceMillis(time));
udp.send(socket, 2000, 512, ByteBuffer.wrap(new byte[]{-2, 1}), data -> {
Host host = NetworkIO.readServerData((int)Time.timeSinceMillis(time), socket.getAddress().getHostAddress(), data);
host.port = port;
Core.app.post(() -> valid.get(host));
}, e -> Core.app.post(() -> invalid.get(e)));
/*
try{
var host = pingHostImpl(address, port);
Core.app.post(() -> valid.get(host));
@@ -228,7 +241,7 @@ public class ArcNetProvider implements NetProvider{
}
}
Core.app.post(() -> invalid.get(e));
}
}*/
}
private Host pingHostImpl(String address, int port) throws IOException{