Programuję gniazdo. Wziąłem odniesienia z poniższego linku:Gniazdo EADDRINUSE (adres już w użyciu)
http://examples.javacodegeeks.com/android/core/socket-core/android-socket-example/
Poniżej szczegółów na temat mojego problemu. Utworzyłem bibliotekę Android dla tego ServerThread (moje wymaganie dotyczące projektu) i jest ona używana w aplikacji testowej.
Teraz aplikacja testowa łączy się z tym poprzez bibliotekę i wykonuje proces. Pierwszy raz to działa perfekcyjnie, ale jeśli zamknięte i ponownie rozbił z wyjątkiem:
próbował także serverSocket.setReuseAddress(true)
to, ale bez powodzenia „EADDRINUSE (już w użyciu Adres)”.
Mój kod:
public void run() {
Socket socket = null;
try {
serverSocket = new ServerSocket(SERVER_PORT);
serverSocket.setReuseAddress(true);
} catch (IOException e) {
Log.e(TAG, "exception1= " + e.getMessage());
}
while (!Thread.currentThread().isInterrupted()) {
try {
socket = serverSocket.accept();
Log.d(TAG, "server Connected.......!!!!");
communicationThread = new CommunicationThread(
socket);
commThread = new Thread(communicationThread);
commThread.start();
} catch (IOException e) {
Log.e(TAG, "exception 2=" + e.getMessage());
}
}
}
Jeśli zadzwonię serverSocket.close()
otrzymuję wyjątek 2 jako gniazdo serwer końca. Wątek komunikacji jest taki sam jak podany w poprzednim linku.
sam problem jak tutaj ... http://stackoverflow.com/questions/20068710/java-net-bindexception-bind-failed-eaddrinuse-address-already-in-use – morya
Jaki typ gniazda są używasz? –
Jak korzystać z gniazda? Czy możesz utworzyć przykład [Minimal, Complete i Verifyable] (http://stackoverflow.com/help/mcve) i pokazać nam? –