A simple half-duplex application where client establishes a connection with the server to send and receive messages at the same time
- The server takes care of 3 main functions during establishment of a connection
a) s.bind()- binds the address to the socket. address contains hostname and port number.
b) s.listen()- used to establish a TCP listener.
c) s.accept()- accepts another TCP connection and waits for connection to be established. - The client's job is to initiate a TCP server connection. Connection is succesfull when there is a TCP listener active on the server application.