An Internet socket or a network socket or simply socket in computer networking terms is simply defined as an endpoint of a bidirectional communication flow across an Internet Protocol-based computer network, such as the Internet. It is an application programming interface (API) in an operating system, used for in inter-process communication. It comprises a mechanism for delivering incoming data packets to the appropriate application process, based on a combination of local and remote IP addresses and port numbers. A socket address is a combination of an IP address i.e. the location of the computer and a port which is mapped to the application program process into a single identity.