Threading is an integral part of the Java language - I've used it a lot and never encountered any problems (besides those that always come from multithreaded programs
Networking is not an integral part of the language, but it IS a significant part of the core run-time library. IOW: Any platform that supports Java also supports HTTP and sockets (UDP/TCP) out of the box. In addition, these protocols are SOOO easy to use (a lot simpler than winsock for example).
Java for implementing a server? No reason not to - it won't be much different from implementing it in C (except for the built-in HTTP support, which might be hard to come by for a C app). There's (obviously) a slight performance penalty, but I doubt if it'll ever turn into a problem.
You might want to get a good Java book - they all discuss both threading and networking in detail. (Avoid the big fat 1200 page ones, since they're essentially transcripts of the language spec, stuffed with useless repetition, figures and lousy code samples).