A software network port is an identified doorway (address) for communicating between a program and another communications system or program often passing through a hardware port. The network port is usually numbered and a standard network implementation like TCP, UDP or IP (see below) will attach a port number to data it sends. The receiving implementation will guard and listen at the attached port number (doorway) to figure out which program to send data to on its system. A port may send/receive data one direction at a time (simplex) or simultaneously in both directions (duplex). These software network ports may also connect internal programs on a single computer system.
In TCP and UDP the combination of a port and a network address (IP-number) is called a socket.