[MUD-Dev] TECH: Servers in Java

Brian Hook brianhook at pyrogon.com
Sat Dec 29 16:44:23 CET 2001


After my brief fling with different languages for implementing an
experimental server, I'm back to Java somehow.  Eiffel had, well,
some issues, even though the language and philosophy are
interesting.  Obj-C, as much as I love it, doesn't have true
garbage-collection and it lacks broad support in terms of tools and
languages.

I'm still using Obj-C for my own tools on OS X, however for a server
environment I'm leaning back towards Java, although I do lose
compatibility with existing C/C++ frameworks/libraries by going that
route.  So I may still end up with Obj-C in the end, but for now
I'll take a stab at Java.

The first thing I've noticed is that Java's UDP implementation
doesn't seem to have a non-blocking mode receive().  The apparent
recommended strategy is to park your receive() on a separate thread.
I assume I'll be multiplexing incoming data based on the client's
IP/port combo, as opposed to some proposals of forking off a new
thread per client (which would obviously not be tenable with, say,
2000 clients).

Other issues include the robustness of the various JVM
implementations and the usability/predictability of Java GC
implementations (that's a real big unknown for me -- is Java's GC
going to be bad enough that it will affect a server's reliability?).

If anyone has first hand experience on this, I'd love to hear about
it.  I've done some cursory examination of the archives and haven't
found much.

In case it's relevant, my final target will likely be FreeBSD 4.x on
Intel.

Thanks,

Brian

_______________________________________________
MUD-Dev mailing list
MUD-Dev at kanga.nu
https://www.kanga.nu/lists/listinfo/mud-dev



More information about the mud-dev-archive mailing list