Do I need to create a new Thread for this method?
Yes. When the tutorial says "use with extreme caution", they mean "make sure you do it correctly", not "stay away until you know better".
Arguably the easiest thread type is one where the thread goes off in it's own direction, runs to completion, and never talks back to the original thread - and it looks like you can do that here. It makes life so much easier if you're not synchronizing access to data, or waiting on events, or etcetera.
My suggestion: Wrap that code you've posted into a separate object that implements the Runnable interface. Then in your action listener for the button, simply create a new thread for that object, set it's priority correctly (event handlers run at too high of a priority for "normal" processing), and start it. Assume your server listener is called "MySocketListener" - you'd start it like this:
MySocketListener msl = new MySocketListener();
Thread t = new Thread( msl );
t.setPriority( Thread.NORM_PRIORITY );
t.start();
In essence what you're doing is starting a new thread with your listener, and then releasing it "into the wild".
HTH