Java's RMI should not be used for realtime I/O. It has many design flaws, and the only advantage of it is that it's shipped with the JRE. If anything, avoid it and use (something like) Kryonet.
KryoNet has a simple RMI system. It was written mostly just to see how simple it could be done (~441 lines
using the CLOC tool). In practice, I still wouldn't bother with RMI as having some method calls go over the network is just too much magic for me. It also has some very minor overhead. The alternative really isn't a big deal, which is to explicitly send and receive messages (objects with KryoNet).