That is a very open-ended question since so many Java tools are available for communication. Think about these questions: How much data? How often? Connected by local network or Internet or what? What security concerns? How is communication initiated?