schließen Sie alle Steckdosen nach es zu benutzen? auf der server-Seite

Muss ich alle schließen des sockets nachdem es zu benutzen? Wo Stelle ich Ihnen in diesem code? Mein Programm funktioniert in der Regel, wenn ich es laufen lasse. Allerdings, wenn ich starten Sie es erneut, es sagte: "Exception in thread "main" java.net.BindException: Address already in use: JVM_Bind". Deshalb denke ich, dass ich nicht alle schließen die Steckdose nach der Benutzung.

import java.io.*;
import java.net.*;
import java.util.*;
public class Server2 {
public static void main(String args[]) throws Exception {
    int PORT = 5555;      //Open port 5555
    //open socket to listen
    ServerSocket server = new ServerSocket(PORT);
    Socket client = null;
    while (true) {
        System.out.println("Waiting for client...");
        //open client socket to accept connection
        client = server.accept();
        System.out.println(client.getInetAddress()+" contacted ");
        System.out.println("Creating thread to serve request");
        ServerStudentThread student = new ServerStudentThread(client);
        student.start();


    }

}

}

  • Sie scheinen Ihre eigene Frage beantwortet. Haben Sie versucht, Ihren eigenen Vorschlag?
  • Cantos: Aber ich weiß nicht, wie sockets zu schließen und wohin damit. Wo immer ich die Buchse.schließen(), sagte, es falsch.
  • Sie brauchen, um einen shutdown-hook , Wann immer Sie erhalten Prozess beenden signal setzen dann den exitServer zu wahren,sollte dies eine volatile-variable und passiert in einem separaten thread.Auch ein Blick auf den Quellcode des Tomcat-HttpServer, bekommen Sie vielleicht eine Idee!!
InformationsquelleAutor John | 2011-02-12
Schreibe einen Kommentar