Фактически, я сделаю свой комментарий ответом:
Создайте / запустите другой поток. Экземпляр, передав ему новый IP / порт.Установите какой-либо флаг в старом потоке A, приказывая выйти из него и очистить его, если и когда он когда-нибудь проснется.
Если вы хотите немного разбираться с вещами или часто выполняете эту операцию «изменения сокета»закройте прослушивающий сокет в старом потоке A - вызов вызова accept () завершится с некоторым исключением или ошибкой, и старый поток A сможет очистить себя и умереть.