Computer network programming

[1] Very generally, most of communications can be divided into connection-oriented, and connectionless.

Whether a communication is connection-oriented or connectionless, is defined by the communication protocol, and not by application programming interface (API).

Examples of the connection-oriented protocols include Transmission Control Protocol (TCP) and Sequenced Packet Exchange (SPX), and examples of connectionless protocols include User Datagram Protocol (UDP), "raw IP", and Internetwork Packet Exchange (IPX).

For connectionless communications, one party ("server") is usually waiting for an incoming packet, and another party ("client") is usually understood as the one which sends an unsolicited packet to "server".

Network programming traditionally covers different layers of OSI/ISO model (most of application-level programming belongs to L4 and up).