multithreading - UI Freeze in simple Socket (Java) app using SWT for UI -
multithreading - UI Freeze in simple Socket (Java) app using SWT for UI -
i'm new java socket programming , exploring socket apis. i've created new simple app starts serversocket
, listens clients, when client writes on socket, server allocates new thread client. tried first using console app , worked fine. now, i've made gui same using swt (windowbuilder plugin in eclipse 3.7). window has button toggles listening of server on , off. below code written in swt button's click event start listening clients.
if(!isserverrunning) { btnserverrunner.settext("stop server"); isserverrunning = true; while (listening) { seek { new clienthandler(listener.accept()).start(); } catch(exception ex) { ex.printstacktrace(); } } } else { seek { listener.close(); } catch(exception ex) { ex.printstacktrace(); } btnserverrunner.settext("start server"); isserverrunning = false; }
the clienthandler
class has thread
extended , hence launch new thread every new client. know above code works console app not work gui since i'm throwing app infinite loop of listening client sockets in button's click. elegant way start , stop serversocket
listening clients doesn't freeze app ui?
thanks.
you should utilize separate thread accepting client connections. button start , interrupt thread.
java multithreading sockets swt freeze
Comments
Post a Comment