Как правильно закрыть сокет, а затем снова открыть его?

Я разрабатываю игру для класса, в котором я нахожусь, и это примерно 99 % done. Однако я понял, что существует проблема: если сервер и клиент отключаются, а клиент пытается повторно подключиться (а сервер снова работает и работает нормально), клиент не устанавливает новое подключение.

и сервер, и клиент являются многопоточными. Если я отправлю клиенту сообщение Kick , произойдет то, что клиент закроет свой сокет. Если я повторно подключусь, я получу SocketException : socket закрыто, даже несмотря на то, что всякий раз, когда нажимается соединение, создается новый Клиент, который по сути представляет собой просто класс, который создает сокет и подключается к серверу с помощью потока получения / отправки.

Как вы думаете, есть ли что-то, что я делаю нелогично? Это похоже на попытку использовать старые Socket и Client, которые были созданы, но если я сделаю несколько println вызовы, я вижу, что он создает новый, и они находятся в разных местах памяти.

Спасибо!

7
задан Alberto Solano 11 December 2011 в 16:27
поделиться