What confuses me is that given that sockets are bi-directional, why can't I just open 1 socket with socket()
on the client and one on the server and let them communicate over this single socket?
What would be a common use case that I would need a pair of sockets?