An easier route would be to use the java.nio stuff which gives you non-blocking sockets so you don't have to punt your networking into a separate thread.
Are you serious? This guy says he's new to Java, and is struggling with threads, and you recommend java.nio?
I'd recommend him to read the Sun Java Tutorial, which explains both threads and networking.
To keep it thread safe in the most basic way, simply pass all incoming packets from the TCP streams to a (synchronized) queue, and handle it from the Even Dispatch Thread. It will work, and you can always refactor it later to a 'proper design' - the main priority should be to get it to work though.