У меня есть проект, в котором я разрабатываю приложение для Android с использованием большого количества существующего кода C ++, доступ к которому осуществляется через JNI, который открывает и закрывает сокеты.
Даже несмотря на то, что этот C ++ правильно обрабатывает закрытие открываемых сокетов, кажется, что ОС Android или JVM хранят ссылки на эти сокеты / порты, используемые до следующего вызова GC.
Что произойдет, если мы остановим приложение и запустим его снова перед следующим вызовом GC, приложение не сможет создавать подключения к тому же сокету / порту.Если мы подождем, пока ОС вызовет GC и , то перезапустит приложение, оно успешно создаст соединения.
Есть ли способ вручную освободить сокет с точки зрения Android / JVM?Возможно утилита класса сокета?Ручной вызов в GC?