socket编程中AF_INET和PF_INET有什么区别?
我对在 socket()
和 bind()
中使用 AF_INET 和 PF_INET 感到困惑。
另外,如何在 sin_addr
字段中给出 ip-address?
最佳答案
Beej's famous network programming guide给出了一个很好的解释:
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.
https://stackoverflow.com/questions/6729366/