Sockets streams communicate between programs that are running in separate processes.
The programs can either start separately or start by using the java.lang.Runtime.exec() method from within the main Java™ program. If a program is written in a language other than Java, you must ensure that any American Standard Code for Information Interchange (ASCII) or extended binary-coded decimal interchange code (EBCDIC) conversion takes place. See Java character encodings for more details.
For an example that uses sockets, see Example: Use sockets for interprocess communication.