Making Java Server to stop after certain time -
i want create java server program stops after 10 seconds.right now, using setsotimeout method. once time expires, catch exception , generate server closing message.
but seems workaround. there better way it?
public class dailyadviceserver { string[] advicelist = {"take smaller bites", "go tight jeans. no not make fat", "one word: inappropriate", "just today, honest. tell boss *really* think", "you might want rethink haircut"}; public void startserver() { try { @suppresswarnings("resource") serversocket serversock = new serversocket(2727); serversock.setsotimeout(10000); while (true) { socket sock = serversock.accept(); outputstreamwriter streamwriter = new outputstreamwriter(sock.getoutputstream()); bufferedwriter writer=new bufferedwriter(streamwriter); string advice = getadvice(); writer.write(advice); writer.close(); } } catch (sockettimeoutexception ex) { system.out.println("the server has shut down."); } catch(ioexception ex) { ex.printstacktrace(); } } private string getadvice() { int random = (int) (math.random() * advicelist.length); return advicelist[random]; } public static void main(string[] args) { dailyadviceserver server = new dailyadviceserver(); server.startserver(); } }
you can start timer after creation of serversocket , when timer expires can close it
Comments
Post a Comment