hey leute
könnte mir jmd bei folgendem problem bitte helfen:
ich habe einen server der vom benutzer gestartet wird. Währen der Server läuft kann der benutzer einstellungen vornehmen. unter anderem den port des servers ändern. um die einstellung wirksam zu machen muss nun der server neugestartet werden.
kenn mich leider mit threads net so gut aus
und
cheers
könnte mir jmd bei folgendem problem bitte helfen:
ich habe einen server der vom benutzer gestartet wird. Währen der Server läuft kann der benutzer einstellungen vornehmen. unter anderem den port des servers ändern. um die einstellung wirksam zu machen muss nun der server neugestartet werden.
kenn mich leider mit threads net so gut aus
Java:
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.net.ServerSocket;
import java.net.Socket;
public class Server extends Thread {
private boolean running;
private int port;
private ServerSocket server;
private Socket client;
private ObjectInputStream in;
private ObjectOutputStream out;
private ServerHandler handler;
public Server( ServerHandler handler ) {
this.running = false;
this.port = 4711;
this.server = null;
this.client = null;
this.in = null;
this.out = null;
this.handler = handler;
}
public String getStatus() {
if ( running ) return "started";
else return "stopped";
}
public void run() {
running = true;
System.out.println("Server started");
while ( !isInterrupted() ) {
try {
server = new ServerSocket( port );
System.out.println("Server is connected on port: " + port);
System.out.println("Waiting for client...");
client = server.accept();
if ( client != null ) {
out = new ObjectOutputStream( client.getOutputStream() );
in = new ObjectInputStream( client.getInputStream() );
while ( !isInterrupted() ) {
out.writeObject( handler.getResponse( in.readObject() ) );
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
running = false;
try {
if ( in != null )
in.close();
if ( out != null )
out.close();
if ( client != null )
client.close();
server.close();
} catch (IOException e) {
e.printStackTrace();
}
}
public int getPort() {
return port;
}
public void setPort(int port) {
this.port = port;
}
}
und
Java:
if(server.getStatus().equals("started")) {
try {
server.interrupt();
} catch (Exception e) {
e.printStackTrace();
}
}
else
server.start();
break;