Я нашел ту же проблему в этом посте , но я думаю, что она не была решена.
Я собираюсь быть кратким, это мой код:
try {
Socket pacConx = new Socket(ip, Integer.parseInt(port));
DataInputStream dataIn = new DataInputStream(pacConx.getInputStream());
DataOutputStream dataOut = new DataOutputStream(pacConx.getOutputStream());
while(){...}
} catch (IOException e) {
logger.fatal("error", e);
}finally{
if (dataIn != null) {
dataIn.close();
}
if (dataOut != null) {
dataOut.close();
}
if (pacConx != null) {
pacConx.close();
}
}
Сначала я подключаюсь к серверу, используя приведенный выше код, и это успешно.Но, когда я пытаюсь через некоторое время повторно подключиться к тому же серверу и порту, я не могу повторно подключиться.Очевидно, первый сокет все еще «жив» в serverSide.
- это решение моей проблемы?
Есть ли способ, которым я могу закрыть другой «живой» сокет?