As I mentioned in my comment, it's hard to be sure what's going on without seeing all of the code, but it appears that at least in the 'read' scenario, you are not joining the Multicast socket to the multicast group.
See the documentation for MulticastSocket for more info. There's a good, simple example of both writing and reading at the top of the JavaDoc.