An entry or exit point for data in a computer which is connected to a TCP-IP network. If a programmer wants to develop a program which reads data from a network, then he or she programmatically sets up a socket on the computer which is going to receive the data. This socket is then referenced in any program which carries out the data transfer. In Java a socket is created by specifying the port number through which data transfer is to occur. A socket is a logical concept not a hardware concept.