I would investigate a way to roll all the commonality into a base class which would store a single int or enumeration. Then instead of switching your code should be able to do what it needs to do via array indexing off that int.
An enum could be used, but you would be sending an extra int over the network for no real reason. Note this is an extra overhead of 1 or 2 bytes, so not a big deal. However, this is easily avoided with the solutions in my post above.
Forget about this craziness and just send some custom text or JSON. Like Riven says, I'd keep it simple at first.
The "problem" remains. Instead of 120 'if (object instanceof Xxx)' you would have 120 'if (string.equals("Xxx"))'.
Anyway, I doubt Mads actually has 120 objects and is just annoyed at how the code looks with a bunch of instanceofs. There is no bottleneck.
Correct, but there will eventually come a time where I have too many objects, to just put if-statements.
I also have made networking before using a text-based protocol, and blocking I/O, but that is just a cheap solution (..or so I think).