Java Socket programming is used for communication between the applications running on different JRE. Java Socket programming can be connection-oriented or connection-less. You can find examples for both ways to establish communication between machines Connection-oriented => TCP Connection-less => UDP