BSD sockets are built on the basic UNIX® model: Everything is a file. In our example, then, sockets would let us receive an HTTP file, so to speak. It would then be up to us to extract the PNG file from it.
Because of the complexity of internetworking, we cannot just use the open
system call, or the open()
C
function. Instead, we need to take several steps to “opening” a socket.
Once we do, however, we can start treating the socket the same way we treat any file descriptor: We can read
from it, write
to it, pipe
it, and, eventually, close
it.