What is the difference between AF_INET and PF_INET in socket programming?

Beej’s famous network programming guide gives a nice explanation:

In some documentation, you’ll see mention of a mystical “PF_INET”.
This is a weird etherial beast that is rarely seen in nature, but I
might as well clarify it a bit here. Once a long time ago, it was
thought that maybe a address family (what the “AF” in “AF_INET” stands
for) might support several protocols that were referenced by their
protocol family (what the “PF” in “PF_INET” stands for).
That didn’t happen. Oh well. So the correct thing to do is to use AF_INET in your
struct sockaddr_in and PF_INET in your call to socket(). But
practically speaking, you can use AF_INET everywhere. And, since
that’s what W. Richard Stevens does in his book, that’s what I’ll do
here.

Leave a Comment