/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package org.pieShare.pieTools.pieUtilities.service.networkService;
import java.net.BindException;
import java.net.DatagramSocket;
import java.net.SocketException;
import java.util.logging.Level;
import java.util.logging.Logger;
import org.pieShare.pieTools.pieUtilities.service.networkService.api.IUdpPortService;
import org.pieShare.pieTools.pieUtilities.service.pieLogger.PieLogger;
/**
*
* @author RicLeo00
*/
public class UdpPortService implements IUdpPortService {
private final int MAX_PORT;
public UdpPortService() {
MAX_PORT = 65535;
}
@Override
public int getNewPortFrom(int port) {
for (int i = port; i <= MAX_PORT; i++) {
try {
DatagramSocket s = new DatagramSocket(i);
s.close();
return i;
} catch (BindException ex) {
PieLogger.info(this.getClass(), "Port could not be found. Try next one.", ex);
} catch (SocketException ex) {
PieLogger.info(this.getClass(), "Port could not be found. Try next one.", ex);
}
}
return -1;
}
}