Sto facendo programmazione socket. Presi di riferimento da sotto il collegamento:Socket EADDRINUSE (Indirizzo già in uso)
http://examples.javacodegeeks.com/android/core/socket-core/android-socket-example/
Di seguito è riportato dettaglio circa il mio problema. Ho creato Android per questo ServerThread (il mio requisito di progetto), e questo è usato nell'app di test.
Ora l'app di test si collega a questo tramite lib e fa il processo. La prima volta funziona perfettamente bene, ma se ho chiuso e riaprirlo è schiantato con l'eccezione:
"EADDRINUSE (Indirizzo già in uso)"
anche provato serverSocket.setReuseAddress(true)
questo, ma senza fortuna.
Il mio codice:
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());
}
}
}
Se chiamo serverSocket.close()
io sono sempre un'eccezione 2 come socket server vicino. Il thread di comunicazione è lo stesso del collegamento precedente.
stesso problema qui ... http://stackoverflow.com/questions/20068710/java-net-bindexception-bind-failed-eaddrinuse-address-already-in-use – morya
Che tipo di presa sono stai usando? –
Come si usa la presa? Puoi creare un esempio [Minimo, Completo e Verificabile] (http://stackoverflow.com/help/mcve) e mostrarci? –