Как узнать, что у сокета уже есть адрес?
В общем, моё приложение пересоздает сокет, обновляя в каждом экземпляре клиента сокет user полученный от метода accept в случае если клиент до сих пор думает что соединение установлено, а сервер при попытке отправить клиенту команду выдаёт исключение:
ConnectionAbortedError: [WinError 10053] Программа на вашем хост-компьютере разорвала установленное подключение
Я также понимаю что клиент считает что по прежнему подключен, исходя из логов, там видно что отключения будто бы и не было, точнее поток dataOutputStream получает null pointer exception в случае если явно закрыть сокет сервера.
Мне нужно как-то узнать, выпало ли WinError 10053 из-за того что на стороне сервера перебой или же просто отключился клиент, но если клиент отключился и перебоя на стороне сервера не было, при попытке пересоздать сокет, выпадет исключение:
OSError: [WinError 10048] Обычно разрешается только одно использование адреса сокета (протокол/сетевой адрес/порт)
Это значит, что адрес у сокета есть и ос его не закрывала. Тут та я и хочу, на всякий, избежать исключения, проверив есть ли у сокета сервера уже привязанный адрес, но методу socket.getsockname() я не знаю следует ли доверять в моём случае, поэтому и ищу ответ на вопрос: Как проверить, удостовериться что адрес у сокета есть?