3Actually, all that is required is an object that behaves like a socket, you could even use files, even though it’d be tricky to get the handshakes right!