Socket Programming

Challenge 6-1: Network Programming

Much like you have to charge a laptop by plugging a charger into a wall socket to create a connection, in “socket programming”, two nodes on a network are connected to enable them to communicate with each other.

A node is simply a connection point within a network that can receive, create, store or transmit data to other nodes in the same network. Physically, this could be any device connected to the network (i.e., the computer you are using now, your phone, your smart TV…).

Just like you’d need to know your friend’s address to visit their house, or their email address to send them an email, network nodes have associated network addresses that are used to identify their particular location within the network.

For instance, the client and server need to know the address of each other in order to transmit those request-response message patterns.

Do you remember Radia Perlman and her work on network protocols? On the Internet, an Internet Protocol (IP) Address ensures efficient communication between different nodes of the network.

An IP Address is a unique identifier for a particular device, and is usually assigned to your device as soon as you connect to the internet. An IP Address is a numerical string of numbers separated by stops, which may look something like “93.184.216.34”.