use of com.esotericsoftware.kryonet.ClientDiscoveryHandler in project ProjektGG by eskalon.
the class ServerDiscoveryHandler method discoverHosts.
/**
* @param port
* The port to listen on.
* @param listener
* The listener that is informed when a server is found.
*/
public void discoverHosts(int port, HostDiscoveryListener<P> listener) {
Preconditions.checkArgument(port > 0, "the port must be valid");
Preconditions.checkNotNull(listener, "the listener cannot be null");
Client c = new Client();
c.getKryo().register(packetClass);
c.setDiscoveryHandler(new ClientDiscoveryHandler() {
@Override
public DatagramPacket onRequestNewDatagramPacket() {
byte[] buffer = new byte[1024];
return new DatagramPacket(buffer, buffer.length);
}
@Override
public void onDiscoveredHost(DatagramPacket datagramPacket) {
Object obj = c.getKryo().readClassAndObject(new Input(datagramPacket.getData()));
if (packetClass.isInstance(obj))
listener.onHostDiscovered(datagramPacket.getAddress().getHostAddress(), packetClass.cast(obj));
}
@Override
public void onFinally() {
}
});
c.discoverHosts(port, timeout);
c.close();
}
Aggregations