JDK (Java Development Kit) Tutorials
Dr. Herong Yang, Version 5.00

What Is a Socket?

This section describes what is a socket - An concept represents one end-point of a two-way communication link between two programs running on the Internet network.

Socket: An concept represents one end-point of a two-way communication link between two programs running on the Internet network.

Internet Address: A unique number to identify each computer system on the Internet.

Port: A number representing an entry point of on a computer system on the Internet, where a two-way communication link can be established.

Local System: The computer system at this end of a two-way communication link.

Remote System: The computer system at the other end of a two-way communication link.

A two-way communication link on the Internet involves:

  • Two computer systems, each has its own Internet address.
  • A port number on each computer system that is used only by this communication link.
  • An application program on each computer system that uses this communication link.
  • A socket object created in the application program that represents this communication link.
  • The application program can use the socket as a logical input or output device to receive or send data from or to the application program running at the other end of the communication link.
  • The application program can also query the socket for information about the communication link, like: The Internet address and port number at this end of the communication link; The Internet address and port number at the other end of the communication link.

The follwing diagram illustrates how an application program can use a socket to talk with other application programs running on another computer system throught a two-way communication link on the Internet:

Computer System I                            Computer System II

       i/o       |Address a|    Internet    |Address b|       i/o
App. A<--->Socket|Port 1   |<-------------->|   Port 2|Socket<--->App. X

Last update: 2006.

Sections in This Chapter

What Is a Socket?

Establishing a Socket Communication Link

ReverseEchoer.java - A Simple Server Socket Application

SocketClient.java - A Simple Client Socket Application

ReverseEchoServer.java - A Multi-Connection Socket Server

Binding Sockets to Specific Ports

Dr. Herong Yang, updated in 2008
What Is a Socket?