In network programming, a socket is a software endpoint used for bidirectional communication between two programs across a network. It acts as an interface that manages data transmission, handling underlying protocols such as TCP/IP without requiring the user to manage complex network details.
Socket communication typically relies on a client-server model. A server application creates a socket bound to a specific IP address and port number, listening for incoming requests. A client application creates its own socket to initiate a connection to that server. Once connected, data flows between the systems much like writing to or reading from a local file.
In the context of test and measurement equipment, sockets are frequently used for LAN-based control. For example, an LXI-compliant power supply functions as a server, waiting for a connection on a specific port. The PC control software acts as a client, connecting to the power supply to send commands and receive measurement data.