Я использую java-сокет для передачи данных со стороны клиента на мой сервер. Пользователь должен нажать кнопку, чтобы открыть соединение с определенным портом, а клиент должен был запустить исполняемый файл jar для отправки данных на открытый порт, но в некоторых случаях пользователь нажимает кнопку, а затем по какой-то причине закрывает вкладку браузера!
Когда он пытается нажать кнопку еще раз, это дает
Адрес уже используется: JVM_Bind
Есть ли способ преодолеть это?!
Возможно ли уничтожить какой-либо процесс в порту перед его использованием?
Мой код класса на стороне сервера на случай, если кому-то понадобится проверить:
class Server {
private Socket socket = null;
private ServerSocket server = null;
private DataInputStream in = null;
public Server(Integer port) throws Exception {
try {
server = new ServerSocket(port);
JSFUtils.addFacesInformationMessage("Waiting for a Data...");
socket = server.accept();
JSFUtils.addFacesInformationMessage("Done");
in = new DataInputStream(new BufferedInputStream(socket.getInputStream()));
String line = in.readUTF();
System.out.println("Data Scaned >> " + line);
} catch (Exception i) {
i.printStackTrace();
} finally {
// close connection
if (socket != null)
socket.close();
if (in != null)
in.close();
}
}
}