I made a small command-line client-server FTP application in Java which uses sockets and streams for communication. It basically sends the client’s commands to the server via a stream socket where the server again uses the stream to send back information. I recently learned about RMI in my class and I was curious how exactly this is different from RMI. Aside from being bug free and its underlying functionality being abstracted away, why would you want to use RMI as opposed to doing what I did? Thanks.